萌新程序狗
2019-02-23 20:19
#include <stdio.h>
int main()
{
int x = 0;
printf("x=%d\nx=%d",x++,++x);
return 0;
}
运行结果是:x = 1
x = 2
本来printf函数就有从右至左计算的功能(先计算再打印),so,第一次从右至左运算一遍:++x为1(x此时真正的值也为1),然后就是x++为1(x此时真正的值为2)。然后就是从左至右打印了,x++还是x++(原来的值不变),打印出来的这个式子的值还是1,而到了++x就不一样了,它可以把它真正的值打印出来。希望我的回答您能看懂ahahahah>.<
x=x++,x首先赋值0,自增加一后再赋值给前面的x,所以x=1;x=++x,自增一再赋值后得x=2,前后x相等,结果x=2。
从右到左算的
C语言入门
926210 学习 · 20797 问题
相似问题