发现一个奇怪的事

cummingte 2002-03-24 02:32:58
#include <iostream>

using namespace std;

void main()
{
int x=4;

cout << (++x)+(++x)+(++x) << endl;

cin >> x;
}

这样一段代码,在vc.net结果为21,vc6.0中却为19,怎么回事?
...全文
86 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
whhif 2002-03-24
  • 打赏
  • 举报
回复
最好看看汇编后的源代码。
不同的编译器有不同的解释,
侯捷老师说得好“源代码说明一切”。
cubit 2002-03-24
  • 打赏
  • 举报
回复
我没有用过.net,不过你的问题出在编译程序上.恩仔细看看课本也许你会有答案的.这里不再重复.
如果你用LINUX的话也有可能出现另一中结果呢!
不过我建议你用LINUX学习C/C++比较好!
yongyu2000 2002-03-24
  • 打赏
  • 举报
回复
钻研这样的细节,好像没有意义啊!
谭浩强的书里有不少这样的习题,这其实和c本身关系不大啊
++ --知道了就可以了
没有必要作这样的游戏!
pankane 2002-03-24
  • 打赏
  • 举报
回复
vs.net 先算三次++x于是x为7
再加三次x于是为21

vc6
先算两次++x于是x为6
再把两个值相加为12
在执行++x;x=7
于是为7+12=19
cummingte 2002-03-24
  • 打赏
  • 举报
回复
19是怎么出来的?
肖小月 2002-03-24
  • 打赏
  • 举报
回复
为什么是19呀?搞不懂,谁告诉我,谢!
zhizhuwang 2002-03-24
  • 打赏
  • 举报
回复
不同的编译器
maoxianwang 2002-03-24
  • 打赏
  • 举报
回复
编译器的问题

不愿再说了

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧