zoukankan      html  css  js  c++  java
  • C语言指针与函数的关系

    一:

    函数和指针关系:

        1)指向函数的指针

       2)指针作为函数的参数

          int max(int *p1,int *p2){

          }

         1)实参可以是一个指针

         2)也可以是一个和形参类型相同的数组的数组名 

       3)返回值是指针的函数: 

          指针函数

          char* 函数名(){

            return 地址

          }

           //返回值是一个字符串指针

          char * test(){

               return "xxxx";

          }

          char * test2(){

            char ch='a';

            return &ch;

         }

    二: 函数的指针:

       1) 指向函数的指针

        函数在内存中都会划分一块独立的内存区域,函数名代表了函数的内存首地址

        代表内存首地址:数组名  变量名    函数名    结构体名

       2) 函数指针:

              用来存放函数地址的指针变量

        格式:

              int max(int x,int y){

                return x>y?x:y;

              }

              int sum(int x,int y){         

                   return x+y;

              }

              int * getMax(int x,int y){

                   return x>y?&x:&y;

              }

            声明的格式

              int max(int x,int y);

              通过声明推出函数指针  

                 返回值类型  (*指针变量名)(函数的参数);

              //定义了一个函数指针变量p,p可以指向所有返回值是int,

              //有两个整形参数的 函数

              int (*p)(int x,int y);

            注意:定义函数指针的时候,可以不指定形参变量名,但是类型不能省略

                   int (*p1)(int,int); 

        3)函数指针的使用

           (1)给函数指针初始化

              int (*p)(int x,int y);

              //用函数名初始化 函数指针

              p = sum;

          (2)用指针变量调用函数

              p(4,5);

          优点:让函数的调用更灵活

    OC中得block中指向block的指针与函数指针非常像  

  • 相关阅读:
    jquery动画,获取,添加
    javac3p0连接池
    jquery尺寸
    jquery遍历
    jquery删除,停止,获取设置css,设置内容和属性,过滤
    javajdbc(数据库的添加,删除,修改,更新)
    博客开通
    很久每有来空来了,一些最近的想法
    竖线的显示
    一个小问题,c++
  • 原文地址:https://www.cnblogs.com/-boy/p/4051016.html
Copyright © 2011-2022 走看看