永发信息网

指向函数的指针变量作为函数参数有什么好处?

答案:2  悬赏:0  手机版
解决时间 2021-04-07 13:22
书上给了个例子,但还是看不懂有什么好处?
#include

float add(float x,float y)
{return (x+y);}
float sub(float x,float y)
{return (x-y);}
float mul(float x,float y)
{return (x*y);}
float div(float x,float y)
{return (x/y);}

float result(float x,float y,float(*pf)(float,float))
{
float s;
s=(*pf)(x,y);
return s;
}

void main()
{
float a,b,s;
char op;
printf(""please select your operation (input +,-,*or/)\n");
scanf("%c",&op);
printf("please input the two operand\n");
scanf("%f %f",&a,&b);
switch(op)
{
case '+':s=result(a,b,add);break;
case '-':s=result(a,b,sub);break;
case '*':s=result(a,b,mul);break;
case '/':s=result(a,b,div);break;
}
printf("the operation is :%f%c%f=%f\n",a,op,b,s);
}
最佳答案
灵活。
实际上我觉得如果作参数不用指针的话,还真不知道怎么解决。
参数传递一般就是传值和传址两种方式,作为函数的话,好像都想不出怎么传值。
我理解所谓指向函数的指针就是这个函数的入口地址。直接就跳转到那个地址去执行了。
全部回答
在函数声明和定义时fun(int p1,int p2)是不是表示它的参数是两个int型的整数。fun(int* p1,int* p2)则使表示它的参数是两个指针类型的。定义和声明时的变量只是代替符,其它的运算符号与类型符号加起来才是参数类型。你如果觉得不好理解,那么在写的时候就把int 和*放在一起(int*),这就是参数类型。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
项籍不肯竟学的启示
种植草莓前土地应用什么肥及防病害的药
兴业银行信用卡网上消费算刷卡吗?
3ds正版究极日月无法联机交换
宿舍床铺上下问题
什么牌子的船袜好,注意看,是船袜。不是短袜
嘉州盐焗鸡(涟钢沃尔玛店)在哪里啊,我有事要
2017年2月13号北京限那个号
衣卫士干洗(品骏藕塘店)地址有知道的么?有点
在PHOTOSHOP里面的磁性套索如果错了怎样退回
“我要向天空飞去,我要展翅于风里。要 向理
卧龙吟蜀国卡在130咯!
及时还完捷信贷款个人征信还会不会有显示
下列加下划线词语的注音和字形全正确的一项A.
碧玉刚入盆能浇水不
推荐资讯
冲压的冲裁力的计算?
古今啃排骨怎么去啊,有知道地址的么
油锯导板变形能修吗
武林外传 我是50巫祝 之前的所有罡气 九阳 的
福建漳州属于那个地区
山下旌旗在望下一句
狗狗吐黄水 拉稀
“孔明过江吊公瑾,无悲也流千行泪,却为三分
宁波中国移动客户代表(柜台)和宁波银行客服
东东的爸爸将20000元存入银行,定期三年.到
逊克县边疆镇团结村村民委员会地址在哪,我要
重庆的TFBOYS的实体店在哪
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?