首页 > 代码库 > 函数指针

函数指针

      函数指针是指向函数的指针变量。每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针后,可用该指针变量调用函数。函数指针有两个用途:调用函数和做函数的参数。

(1)函数指针的声明方法为:函数类型 (标志符指针变量名名) (形参列表);
 
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)达到的效果是相同的。