可能重复:
confused about printf() that contains prefix and postfix operators.printf使用堆栈?
我遇到与下面的代码段代码来了,
int main() {
int c = 100;
printf("\n %d \t %d \n", c, c++);
return 0;
}
我预计输出为100 & 101,但我得到的输出as
101 100
任何人都可以帮助我知道为什么?从右到左,从而第一C++
我猜测代码是以相反的顺序来评估printf参数,因此首先插入来自“C++”参数的c,然后插入先前的c参数,然后该参数已经增加。 如果你想为第二个值做1加c,并且增加c,我想你必须使用printf(“\ n%d \ t%d \ n”,c,c + 1)。 C++; –