一. 函数指针的定义
1. 函数的作用:完成某一特定功能的代码片段的封装.
2. 函数的定义: 返回值类型,函数名,形参列表,函数体.
3. 函数的调用:函数名 + 形参
4. 函数的使⽤用包含函数声明,函数实现,函数调⽤用三部分.
函数名与数组名一样,都是地址.
二. 函数类型
函数声明中,去掉函数名就是函数的类型.
Eg: int max (int a , int b); 即函数类型为: int (int a, int b);
三. 函数指针类型定义
函数声明: int max(int a, int b);
函数类型:int (int a, int b);
函数指针类型: int (*)(int a, int b);
函数指针定义:int (* p)(int a, int b) = NULL;
p为函数指针变量,其它的则为类型.
四. 函数指针使用
可以直接操作指针当函数名.
五. 函数回调
本质:函数指针作为函数参数,函数调用时传入函数地址.
函数回调可以让程序变得更灵活.
高内聚,低耦合.
函数回调Eg:int getValue(int a, int b,int (*)(int,int));
getValue(a,b,max);
六. 函数指针类型重定义
函数指针类型可以使用typedef进行类型定义,定义时新类型应当写在指针变量的地方.定以后若使用新类型,则其使用方式如同int类型定义变量.void(* p)(char *); FUNP p;
typedef void (* FUNP)(char *);
七. 注意事项
1. 相同类型的函数可以使用同一个函数指针通过指针的重指向来完成一次调用.
2. 函数返回值为多个时,可以传递指针作为形参.
网友评论