| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 757 人关注过本帖
标题:自加自减————讨论
只看楼主 加入收藏
呆派祖师
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
快速回复:自加自减————讨论
数据加载中...
 
   



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

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