1,函数指针,实质上是一个指针,只不过是指向函数的指针,我们都知道数组名代表的是数组元素的首地址,是一个常量,那么一个函数名也可以代表该函数第一条指令的地址,即函数的入口地址,是一个常量地址。我们可以用一个指针变量指向这个常量地址,用来调用这个函数,用这个函数指针的好处是可以指向多个函数的入口地址,如果需要,我们就可以调用某个函数。
2,指针函数,实质上是一个函数,既然是一个函数,那么它就有返回类型,只不过它返回的是指针,是一个地址。
3,函数指针的声明时,必须与它指向的函数的返回类型,参数类型,参数个数一致,否则编译器报错。
4,将函数的入口地址赋给一个函数指针时,只需将函数名赋给函数指针,不能将函数名后带的参数一起赋给函数指针。例如,声明一个函数指针和一个普通的函数。
int (*p)(int a,int b) //函数指针
int max(int m,int n)//普通的函数
p=max 正确
p=max(m,n) 错误
5,用函数指针来调用时,只需将函数名换成(*p),根据需要再加上实参即可
6,函数指针只能指向函数的入口地址,不能进行p++,p--运算,来指向函数中间的某一条指令。