山鸡 -- 学习的脚印

三分天注定,七分靠打拼。

统计

留言簿(1)

积分与排名

C/C++图书下载-----蚂蚁网站

C++BLOG

阅读排行榜

评论排行榜

给点指导吧,各位师兄,师姐们~

在学习中遇到一个问题,在心中思考了许久,

听人说在不同环境下,结果不同.我就在VC中试了试

今天还是来请教  导师们吧!

在VC6中;

#include<iostream>
using namespace std;
int main()
{
      int i=4;
      int num=( ++i ) + ( ++i ) + ( ++i ) ;
      cout << "num=" << num << endl;
      return 0;
}

这时num结果是19,我个人认为是18所以我就又重写了下面的:

#include<iostream>
using namespace std;
int main()
{
      int i=4;
      int num=( ++i ) ;
      cout << "num=" << num<< endl ;
      return 0;
}

此时的结果是5;这我明白.在我意料中的,毫无疑问的!

后来我又在加了一项.

#include<iostream>
using namespace std;
int main()
{
      int i=4;
      int num=( ++i ) + ( ++i ) ;
      cout << "num=" << num<< endl ;
      return 0;
}

此时的结果是12,我就开始有点高不懂了.

我认为第一个( ++i );后结果是5,那么又来个( ++i )后不就是6了吗?
那结果不就是11吗~
但是问了寝室的一位高手说是,( ++i )后确实是5,第二个( ++i )也是6,
但是此时第一个也就是6,所以6+6=12;

我半信半疑的跑道机房去看看,但是依照他的解释,我的三个( ++i )相加,
也就是

#include<iostream>
using namespace std;
int main()
{
      int i=4;
      int num=( ++i ) + ( ++i ) + ( ++i) ;
      cout << "num=" << num << endl ;
      return 0;
}

第一个是5,第二个是6;第三个是7,
那么此时都变成7,即7+7+7=21;
但是结果是19.


当时在学习时不用功,在回顾以前,温习时买了本练习做做,书上的结果也是21
所以我就陷入了思考~~~~


望师哥-师姐-导师们给点指点!!

谢谢!!

posted on 2007-01-14 22:18 米威 阅读(138) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。