| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 448 人关注过本帖
标题:答案为什么是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
快速回复:答案为什么是17?
数据加载中...
 
   



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

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