课程
/后端开发
/C
/C语言入门
#include <stdio.h>
int main()
{
int x = 0;
printf("x=%d\nx=%d",x++,++x);
return 0;
}
运行结果是:x = 1
x = 2
2019-02-23
源自:C语言入门 3-10
正在回答
本来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语言入门视频教程,带你进入编程世界的必修课-C语言
3 回答我用的x++输出不应该是0 嘛,为什么是1?
1 回答int x=0,应该是x++=1 ++x=2啊,为什么x++=0
1 回答第五个输出的为什么是y =%d,不应该是x%y =1吗
1 回答最后为什么是10,不应该是1嘛....
3 回答x++ 结果不应该是2吗,为什么还是1