【发布时间】:2011-05-04 03:26:39
【问题描述】:
可能重复:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)
为什么这段代码会生成 8 作为结果?
#include <iostream>
using namespace std ;
void myFunction(int i)
{
i = i + 2 + ++i;
cout<<i<<endl;
}
void main ()
{
int i = 2;
myFunction(i);
cin>> i;
}
我认为结果应该是 7 而不是 8...我使用的是 Visual Studio 2008
【问题讨论】:
-
另外,
void main()不是标准 C++。将其更改为int main()。 -
为什么,为什么这似乎是这个标签中人们心中的第一大问题?
-
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc...) 的可能副本。搜索
sequence points获取更多答案。 -
该语句的结果应该是下一次代码审查的一个大问题。
-
@M.H:不要因为你不知道如何使用而责怪语言。当你用枪指着你的脚时,不要责怪你的脚趾。
标签: c++