| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2133 人关注过本帖
标题:[问题已解决][求助]一道简单的题
只看楼主 加入收藏
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
结帖率:100%
收藏
 问题点数:0 回复次数:52 
[问题已解决][求助]一道简单的题
main()
{ int i=3,c;
c=(i++)+(++i)+(i++);
printf("%d",c);
}

运行的结果是12
可是我觉得,
第一个括号i++是先取i的值3然后i加1
第二个括号是先对i加1在取值5
第三个括号是先取i的值5再让i加1
但这样的话结果是13 i的值是6
为什么上机调试是12呢?

[此贴子已经被作者于2006-8-2 18:21:13编辑过]

搜索更多相关主题的帖子: 土豆网 
2006-08-01 21:45
皮皮鲁
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-7-27
收藏
得分:0 
第一个括号中是取的3,每二个的I自加1后为4,每三个I自加后为5,相加后为12。
2006-08-01 21:57
皮皮鲁
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-7-27
收藏
得分:0 
以下是引用Sally_SJL在2006-8-1 21:45:38的发言:
main()
{ int i=3,c;
c=(i++)+(++i)+(i++);
printf("%d",c);
}

运行的结果是12
可是我觉得,
第一个括号i++是先取i的值3然后i加1
第二个括号是先对i加1在取值5
第三个括号是先取i的值5再让i加1
但这样的话结果是13 i的值是6
为什么上机调试是12呢?

你可以看看课本上的例子,上面好像是这样写的c=(i++)+(i++)+(i++) i=3

2006-08-01 22:23
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
第一个括号取值为3,这时i=4
第二个括号取值为5,这时i=5
第三个括号取指为5,这时i=6
我觉得应该是这样的啊,可是运行的结果却是12,不明白哎~~~~~~~~


人生没有彩排,每天都是现场直播~~~
2006-08-01 22:39
同林鸟
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-1
收藏
得分:0 
main()
{ int i=3,c;
c=(i++)+(++i)+(i++);
printf("%d",c);
}
运行结果应该是13吧!(3+5+5=13)

2006-08-01 22:45
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1986
专家分:4
注 册:2006-7-1
收藏
得分:0 

我觉的也应该是13,可是我没有现成的工具运行一下,各位兄弟可以运行一下吗!相信自己的调试结果!


[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-08-01 22:57
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用皮皮鲁在2006-8-1 21:57:52的发言:
第一个括号中是取的3,每二个的I自加1后为4,每三个I自加后为5,相加后为12。
i=6 好吧!

羊肉串 葡萄干 哈密瓜!!
2006-08-02 01:20
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用同林鸟在2006-8-1 22:45:05的发言:
main()
{ int i=3,c;
c=(i++)+(++i)+(i++);
printf("%d",c);
}
运行结果应该是13吧!(3+5+5=13)

我刚刚验证 结果是12


羊肉串 葡萄干 哈密瓜!!
2006-08-02 01:20
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
晕 我算了算 也是 13啊   

羊肉串 葡萄干 哈密瓜!!
2006-08-02 01:33
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

我知道了!
大家不能那这个题一步一步的看, 要把它看做一个整体
(i++)i=3
(++i)i=4
(i++)先取i的值 i=4;
然后 在 c=4+4+4=12;
最后 在i加上前面的两个 i++没有加的值 i就等于6
所以 C=12;I=6;
只能这么解释了


羊肉串 葡萄干 哈密瓜!!
2006-08-02 01:44
快速回复:[问题已解决][求助]一道简单的题
数据加载中...
 
   



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

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