请问以下代码的输出结果是什么?
int main() {
int n = 2;
//cout << n++ << n << n--;
printf("%d %d %d", n++, n, n--);
system("pause");
return 0;
}
结果:
很奇怪?
为什么会这样?
原来自己之前一直忽略了C语言中printf包括C++中的cout语句,函数编译的时候,表达式是从右向左计算的!
因此这里先计算n--的值为1, 在输出n为2, 再输出n为2,最后计算n++,但不输出。
这里可能还会奇怪,为啥n--输出为1而不是2呢?因为n--在语句最后一个位置,它会把n--的值算出来后才输出的!