标题:答案为什么是17?
只看楼主
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
结帖率:85.29%
已结贴  问题点数:5 回复次数:4 
答案为什么是17?
#include <stdio.h>

funa(int a,int b) {return a+b;}
funb(int a,int b) {return a-b;}
sub (int (*t)(),int x,int y) {return (*t)(x,y);}

main()
{int x,(*p)(int,int);
p=funa;
x=sub(p,9,3);x+=sub(funb,8,3);
printf("%d\n",x);
system("PAUSE");
return 0;
}
对这个程序在函数的嵌套关系上的理解有点乱,不知道结果是如何得出来的。
搜索更多相关主题的帖子: include return system 
2011-07-07 07:59
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
得分:3 
x=sub(p,9,3);这句不是传参9和3给p么  而p指向的funa函数   所以结果为x=9+3=12;
x+=sub(funb,8,3);推出x=x+sub(funb,8,3);即x=12+sub(funb,8,3);   所以为12+5=17

不管怎么走、总有一个终点...
2011-07-07 08:42
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:1 
p = funa;
x = sub(p,9,3); // x = 12
x += sub(funb, 8, 3); // x = x + (8 - 3) -> x = x + 5 -> x = 17

My life is brilliant
2011-07-07 08:42
firsttiger
Rank: 1
等 级:新手上路
帖 子:14
专家分:3
注 册:2005-11-2
得分:1 
1.两个函数funa,funb,二者的变量都只有两个即a和b,值分别返回a+b、a-b。
2.一个公用子程序sub,可分别调用定义的函数。
3.先求funa,得x=funa(9,3)=12,再求x=x+funb(8,3)=12+(8-3)=17.
4.输出最终x=17.
2011-07-07 09:49
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
得分:0 
回复 2楼 icysky
谢谢,给你一说超简单 :)
2011-07-07 15:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-344912-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.192455 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved