我是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)
答案 0 :(得分:1)
您违反了在同一表达式中具有多个递增和递减的语言规则,或者与未定义的同一个调用的不同参数的规则。