永发信息网

指向函数的指针变量 调用时的格式

答案:2  悬赏:0  手机版
解决时间 2021-03-14 11:56
  • 提问者网友:焚苦与心
  • 2021-03-14 04:17
05年二级C有这样一道题
float f1(float n)
{return n*n; }
float f2(float n)
{return 2*n;}
main()
{float (*p1)(float),(*p2)(float),(*t)(float),y1,y2;
p1=f1; p2=f2;
y1=p2(p1(2.0));
t=p1;p1=p2;p2=t;
y2=p2(p1(2.0));
printf(“%3.0f,%3.0f\n”,y1,y2);
}

为什么y1=p2(p1(2.0)); 的写法正确?不是应该类似于y1=(*p1)(2.0)这样写才可以的吗?
最佳答案
  • 五星知识达人网友:第四晚心情
  • 2021-03-14 05:31
P1,P2表示的是指针函数,就是表示所指向的函数.
Y1=F2(F1(2.0)).而Y1=(*P1)(2.0)是错的
全部回答
  • 1楼网友:洎扰庸人
  • 2021-03-14 06:32
#include typedef int (*pfunc)(char *p); int count1(char *p) { int count = 0; while (*p != '\0') { if (*p >= 'a' && *p <= 'z') { count ++; } p ++; } return count; } int main() { char str[] = "abcde34gr"; pfunc p_func; //此处定义了一个函数指针 p_func = count1; //把count1函数的地址赋值给p_func printf("结果是 :%d\n",(*p_func)(str)); //函数指针调用 //printf("结果是 :%d\n", p_func(str));亦可 return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯