函数指针最常见的两个用途是跳转表和作为参数传递给另一个函数。
简单声明一个函数指针并不意味着它马上就可以使用。和其它指针一样,对函数指针进行间接访问之前必须把它初始化为指向某个函数。
#include<stdio.h>
#include<stdlib.h>
int f(int a); /*声明一个函数 f */
int (*pf)(int a); /*定义一个指针 pf 该指针的类型是函数指针 所指向的函数有一个 int 参数和一个 int 返回值*/
int main(int argc, char *argv[])
{
pf = &f;
/*表达式中的&操作符是可选的,因为函数名在被使用时总是由编译器把它转换为函数指针
&操作符只是显示地说明编译器将隐式执行的任务*/
f(1);
(*pf)(2);
pf(3);
return 0;
}
int f(int a)
{
printf("value = %d \n", a);
return a;
}
#if 0
value = 1
value = 2
value = 3
#endif // 0