麻烦给讲讲这道题
有以下程序
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);
}
程序运行后的输出结果是
A)8,16 B)8,8 C)16,16 D)4,8
麻烦给讲讲这道题有以下程序float f1(float n){ return n*n; }float f2(float
答案:1 悬赏:0 手机版
解决时间 2021-06-08 11:36
- 提问者网友:凉末
- 2021-06-07 16:07
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-06-07 16:45
答案A
函数指针,p1,p2,t都是指向函数的指针,指向的都是返回值是float型,参数也是float型的函数.在使用它们时与直接使用函数一样
y1=p2(p1(2.0))等价于
y1=f2(f1(2.0))
t = p1; p1=p2; p2 = t; 这里是指针交换
而当指针交换后p1指向了函数f2,而p2指向了f1
因此
y2=p2( p1(2.0) ); 等价于
y2=f1( f2(2.0) );
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯