如何用函数指针调用函数
给大家举一个例子:
- 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;
- }
输出结果是:
please enter a and b:3 4
a = 3
b = 4
max = 4