如果一个函数的形参是指向函数的指针变量,再调用该函数时,可以用函数的指针作实参,将函数的指针传给形参指针变量,这样,就可以在该函数中通过形参指针变量调用实参函数。调用该函数时可以用不同函数的指针作实参,以调用不同的函数,完成不同的功能。
例如
题目:应用指向函数的指针做函数参数,编写一个函数process,每次调用它的时候实现不同的功能。输入a,b两个数,第一次调用process时求出a与b的和,第二次求出a与b的差,第三次求出a与b的积。
#include<stdio.h>
int main()
{int add(int x,int y);
int sub(int x,int y);
int multi(int x,int y);
int process(int (*f)(int,int),int x,int y);
int a,b,c;
printf("Input a and b:");
scanf("%d%d",&a,&b);
c=process(add,a,b);
printf("%d+%d=%d\n",a,b,c);
c=process(sub,a,b);
printf("%d-%d=%d\n",a,b,c);
c=process(multi,a,b);
printf("%d*%d=%d\n",a,b,c);
return 0;
}
int add(int x,int y)
{int z;
z=x+y;
return (z);
}
int sub(int x,int y)
{int z;
z=x-y;
return (z);
}
int multi(int x,int y)
{int z;
z=x*y;
return (z);
}
int process(int (*f)(int,int),int x,int y)
{int z;
z=(*f)(x,y);
return (z);
}
运行结果
下一篇
指针14(指向函数的指针作函数参数2)