标题:自加自减————讨论
只看楼主
呆派祖师
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-1-30
 问题点数:0 回复次数:6 
自加自减————讨论
void main(){
 int i=5,j=5,p,q;
 p=(i++)+(i++)+(i++);
 q=(++j)+(++j)+(++j);
 printf("%d,%d,%d,%d",p,q,i,j);
}
p q i j的计算结果??
搜索更多相关主题的帖子: void 
2005-02-10 09:54
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
得分:0 
p=5+5+5
i=8
q=7+7+8
j=8
==============
不知看明白否?
2005-02-10 13:08
瞌睡草
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-2-10
得分:0 

其实在自加自减的问题上根本就没必要讨论太深
 与其在这方面研究还不如多花时间探索c精髓
   
2005-02-10 16:52
呆派祖师
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-1-30
得分:0 
给的答案不是这个样子的
p=5+5+5
i=8
q=8+8+8
j=8
能解释否???

2005-02-10 18:10
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
得分:0 
不可能耶~看来不同的编译器处理不同吧~
我用vc,编译后计算出来q=22,也就是7+7+8。
因为q=(++j)+(++j)+(++j);先自增两次,也就是++j---->6, ++j---->7,然后相加q=14+(++j)。之后++j---->8,q=14+8=22

可能因为不同的编译器处理不同,或者答案本身错误。你自己编译看看就知道了

[此贴子已经被作者于2005-2-10 18:35:41编辑过]


2005-02-10 18:34
同道中人
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-2-9
得分:0 
奇怪偶的结果是21撒
我哪出错了

本人菜鸟,如有不对,请大家及时改正。 谢谢
2005-02-11 15:05
aczhe
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2004-12-23
得分:0 
i++是先参与运算,然后自加。
p=(i++)+(i++)+(i++)=5+5+5=15;然后i自加3次,最后i=8
++j是先自加,然后参与运算。
j自加3次,j=8;然后p=8+8+8+8=24

君子敬其在己者,而不慕其在天者,是已日进也。
2005-02-11 16:18



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




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

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