函数指针:
概念:指向函数的指针;
例子:
int fun(int x);
声明一个函数指针:
int (*fp)(int x);
将fun的首地址赋值给fp:
fp = fun; 或fp = &fun;
调用:
int ret = (*fp)(arg1, arg2);
指针函数:
概念:返回值是指针的函数。
函数指针数组:
概念:数组元素全是函数指针的数组
声明:int ( *fp [ 3 ] ) ( int x );
fp这个数组里面的元素是三个返回值为int, 参数为1个int的函数的地址。
函数指针数组(转移表)的使用:
int (*fp[4])(int arg1, arg2) = {add, sub, mul, div};
scanf("%d", &option);
int ret = fp[option](int arg);
指向函数指针数组的指针
概念:一个指针指向的是一个元素都是函数指针的数组。相当于数组指针。
声明:int * ( *fp ) [ 4 ](int arg);
回调函数的使用 :
函数的参数为函数指针,这个指针指向的函数就是回调函数。
在使用时,只需要在函数调用地方传入函数名就可以了。