永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-04-07 13:22
  • 提问者网友:绫月
  • 2021-04-07 01:01
书上给了个例子,但还是看不懂有什么好处?
#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);
}
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-04-07 01:58
灵活。
实际上我觉得如果作参数不用指针的话,还真不知道怎么解决。
参数传递一般就是传值和传址两种方式,作为函数的话,好像都想不出怎么传值。
我理解所谓指向函数的指针就是这个函数的入口地址。直接就跳转到那个地址去执行了。
全部回答
  • 1楼网友:封刀令
  • 2021-04-07 02:18
在函数声明和定义时fun(int p1,int p2)是不是表示它的参数是两个int型的整数。fun(int* p1,int* p2)则使表示它的参数是两个指针类型的。定义和声明时的变量只是代替符,其它的运算符号与类型符号加起来才是参数类型。你如果觉得不好理解,那么在写的时候就把int 和*放在一起(int*),这就是参数类型。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯