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)这样写才可以的吗?
指向函数的指针变量 调用时的格式
答案:2 悬赏:0 手机版
解决时间 2021-03-14 11:56
- 提问者网友:焚苦与心
- 2021-03-14 04:17
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-03-14 05:31
P1,P2表示的是指针函数,就是表示所指向的函数.
Y1=F2(F1(2.0)).而Y1=(*P1)(2.0)是错的
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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯