读书人

奇怪的结果.解决方法

发布时间: 2012-03-21 13:33:14 作者: rapoo

奇怪的结果..
#include <iostream.h>
void main()
{
int iCount=1,jCount=1,iCount1,s1,s2,s3;
s1=(++iCount);
s2=(++iCount);
s3=(++iCount);
iCount=s1+s2+s3;
cout < < "The first iCount = " < <iCount < < "\n\n "; //9

iCount=1;
iCount=(++iCount)+(++iCount)+(++iCount); //前置++ 2+3+4=9 不是9么结果怎么是10
cout < < "The second iCount = " < <iCount < < "\n\n ";

iCount=1;
iCount+=((++iCount)+(++iCount)+(++iCount)); // 14 ??
cout < < "The third iCount = " < <iCount < < "\n\n ";


iCount=1;
iCount=(iCount++)+(iCount++)+(iCount++); // 6
cout < < "The fourth iCount = " < <iCount < <endl;
}
请大家帮我分析一下这个结果,我有点不太明白..

[解决办法]
不要去讨论这个东西了,这个跟编译器有关的,一般不建议在同一个语句里面多次自增或自减
++ --的问题讨论得太多了。。
[解决办法]
这个东西没必要考虑那么多
编译器要怎么处理你再怎么考虑也是白搭
[解决办法]
用devcpp的g++,结果是9 10 14 6
用vs2005 cl,结果是9 12 16 6
所以楼主没必要去考虑这个话题了
[解决办法]
C++标准说了,这么写是“未定义”行为。不要在这什么多浪费时间。

读书人网 >C++

热点推荐