函数指针
指向函数的指针
// 定义函数
int fun(int a, int b) {
return a + b;
}
1. 直接定义
// 定义函数指针p(有两个int参数,返回值是int类型)
int (*p)(int, int);
// 函数指针赋值
p = fun;
// 调用
int sum = (*p)(1,2);
printf("%d\n", sum);
2. 定义函数指针类型
// 定义有两个int参数,返回值是int类型的函数指针
typedef int (*FUN)(int, int);
// 函数指针赋值
FUN q = fun;
printf("%d\n", (*q)(1,1));
注意:
void *p(void) 相当于 (void *)p(void),函数返回值是指针(void *),不是函数指针