![]() ![]() |
|
指向函数的指针变量作函数参数 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/10/22 21:29:08 文章录入:杜斌 责任编辑:杜斌 | |
|
|
例编制程序,调用一个多功能函数,对于最大值函数参数,求两个数的最大 值;对于最小值函数参数,求两个数的最小值。 程序如下: /*指向函数的指针变量作函数参数*/ main() {int max(),min(),fun(); int a,b; scanf(”%d,%d”,&a,&b); printf(”最大值=”); fun(a,b,max); printf(”最小值=”); fun(a,b,min); } max(x,y)/*最大值函数*/ int X,Y; {if(x>y)return(x); else return(y); } min(x,y∥*最小值函数*/ int X,Y; {if(x<y)return(x); else return(y); } {un(x,Y,p)/*多功能函数*/ int X,Y; int(*p)();/*P参数为指向整型函数的指针变量*/ {int result; result=(*p)(x,y);/*通过指针调用函数*/ print{(”%d\n”,result)} } 输入数据:28,32 运行结果:最大值一32最小值一28 第一次调用fun()函数时,除了将a、b的值传递给X、Y,还将函数max()的入口地址(max)传递给指向函数的指针变量P,这时函数fun()中的(*p)(x,y)相当于max(x,y)。 第二次调用fun()函数时,a、b的值同样传递给x、Y,另改用函数rain()的入口地址(min)传递给指向函数的指针变量P,这时函数fun()中的(*p)(x,y)相当于min(x,y)。 本例这样做无太多实际意义,主要使读者认识指向函数的指针变量作函数参数的做法。请读者进一步参阅本章最后一节的通用积分程序。来源:考试大网 |
|
![]() ![]() |