为什么cout会以相反的顺序给我一个结果?

时间:2014-12-17 14:05:12

标签: c++

我是c ++的新手,我正在做一些练习。

我有一个代码

#include <cstdlib>
#include <iostream>

using namespace std;
int main(void) {
int i=0;
int a,b,c;
a = i++;
b = i++;
c = i++;

cout << a << b << c;
return 0;
}

并且,当我运行它时,结果是:012

但是当我在没有变量a,b和c的情况下运行它时, 比如下面的代码

#include <cstdlib>
#include <iostream>

using namespace std;
int main(void) {
int i=0;
cout << i++ << i++ << i++;
return 0;
}

我以相反的顺序得到结果:210

为什么会这样?我认为它应该是012(我正在使用NetBeans)

1 个答案:

答案 0 :(得分:1)

您违反了在同一表达式中具有多个递增和递减的语言规则,或者与未定义的同一个调用的不同参数的规则。