函数指针定义方式
函数返回值类型 (* 指针变量名) (函数参数列表);
说明
“函数返回值类型”表示该指针变量可以指向具有什么返回值类型的函数;
“函数参数列表”表示该指针变量可以指向具有什么参数列表的函数。
提示
参数列表中只需要写函数的参数类型即可
例程
int(*p)(int, int);
注意
指向函数的指针变量没有 ++ 和 -- 运算
用函数指针调用函数
参考例程
int Func(int x); /*声明一个函数*/
int (*p) (int x); /*定义一个函数指针*/
p = Func; /*将Func函数的首地址赋给指针变量p*/
说明
赋值时函数 Func 不带括号,也不带参数
函数名 Func 代表函数首地址,经赋值后,指针变量 p 指向函数 Func() 代码首地址
参考程序
# include <stdio.h>
int Max(int, int); //函数声明
int main(void){
int(*p)(int, int); //定义一个函数指针
int a, b, c;
p = Max; //把函数Max赋给指针变量p, 使p指向Max函数
printf("please enter a and b:");
scanf("%d%d", &a, &b);
c = (*p)(a, b); //通过函数指针调用Max函数
printf("a = %d\nb = %d\nmax = %d\n", a, b, c);
return 0;
}
int Max(int x, int y) {//定义Max函数
int z;
if (x > y){
z = x;
}
else{
z = y;
}
return z;
}