与其他指针变量相类似,如果指针变量 pi 是指向某整型变量 i 的指针,则*p 等于它所指
的变量 i;如果 pf 是指向某浮点型变量 f 的指针,则*pf 就等价于它所指的变量 f。同样地,
*f 是指向函数 func(x)的指针,则*f 就代表它所指向的函数 func。所以在执行了 f=func;之后,
(*f)和 func 代表同一函数。
由于函数指针指向存储区中的某个函数,因此可以通过函数指针调用相应的函数。现在我
们就讨论如何用函数指针调用函数,它应执行下面三步:
首先,要说明函数指针变量。
例如:int (*f)(int x);
其次,要对函数指针变量赋值。
例如: f=func; (func(x)必须先要有定义)
最后,要用 (*指针变量)(参数表);调用函数。
例如: (*f)(x);(x 必须先赋值)
【例】任意输入 n 个数,找出其中最大数,并且输出最大数值。
main()
{
int f();
int i,a,b;
int (*p)(); /*
定义函数指针 */
scanf("%d",&a);
p=f; /* 给函数指针 p 赋值,使它指向函数 f */
for(i=1;i<9;i++)
{
scanf("%d",&b);
a=(*p)(a,b); /* 通过指针 p 调用函数 f */
}