标题:很奇怪的问题,有人知道吗?
取消只看楼主
leiyuzi
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2005-3-27
 问题点数:0 回复次数:2 
很奇怪的问题,有人知道吗?
#include <iostream.h>
void main()
{
 int i=3,k,j;
 k=(i++)+(i++)+(i++);
 cout<<"k="<<k<<endl;
 i=3;
 j=(++i)+(++i)+(++i);cout<<i<<endl;
 cout<<"j="<<j<<endl;
}
为什么k的值是9,而不是12;j的值是16,而不是15?
更奇怪的是,若将j改为j=(++i)+(++i),输出的j是10,而i是5,也就是说j=(++i)+(++i)中的两个i值都是5,为什么啊???
2005-08-31 22:40
leiyuzi
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2005-3-27
得分:0 
如果是优先级的问题,那么单目运算上面的++i,应该是先运算完啊,那也是4+5+6=15啊,

而且若将j改为j=(++i)+(++i),输出的j是10,而i是5,也就是说j=(++i)+(++i)中的两个i值都是5,这又是为什么呢???
2005-09-02 19:26
leiyuzi
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2005-3-27
得分:0 
五楼的兄弟,谢了啊,相信你是对的,终于解决了这个问题啊。
2005-09-11 00:00



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




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

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