首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

奇怪的结果.解决方法

2012-03-21 
奇怪的结果..#include iostream.hvoidmain(){intiCount1,jCount1,iCount1,s1,s2,s3s1(++iCount)s2

奇怪的结果..
#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++标准说了,这么写是“未定义”行为。不要在这什么多浪费时间。

热点排行