函数指针是指向函数的指针变量。每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针后,可用该指针变量调用函数。函数指针有两个用途:调用函数和做函数的参数。
int sum(int a, int b) { return a + b; }
定义一个函数指针,这里形参类型是必须的,
int(*func)(int, int); 与 int(*func)(int c, int d); 等价
因此调用时根据指针调用便可达到同样的效果。
func(a, b);
(2)利用typedef定义函数指针类型
typedef定义函数指针的与函数指针的声明方式相近,如下述代码
typedef int(*func)(int, int);
在此,func已经不是一个函数指针实例,而是一个的的确确的函数指针类型,他定义了一个有两个整形形参,返回值为一个整形数据的函数指针类型,因此可通过下述代码定义函数指针,并进行函数调用。
typedef int(*func)(int, int); func f = sum; f(a,b);
用f(a, b)与sum(a, b)达到的效果是相同的。
原文地址:http://www.cnblogs.com/rocky526/p/3798672.html