我用的x++输出不应该是0 嘛,为什么是1?

来源:3-10 运算符大比拼之优先级比较

萌新程序狗

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


写回答 关注

3回答

  • 秋海棠yo
    2019-03-25 16:56:41

    本来printf函数就有从右至左计算的功能(先计算再打印),so,第一次从右至左运算一遍:++x为1(x此时真正的值也为1),然后就是x++为1(x此时真正的值为2)。然后就是从左至右打印了,x++还是x++(原来的值不变),打印出来的这个式子的值还是1,而到了++x就不一样了,它可以把它真正的值打印出来。希望我的回答您能看懂ahahahah>.<

  • qq_慕UI6597111
    2019-03-06 21:21:00

    x=x++,x首先赋值0,自增加一后再赋值给前面的x,所以x=1;x=++x,自增一再赋值后得x=2,前后x相等,结果x=2。

  • 谢小维成
    2019-02-23 22:55:06

    从右到左算的

    萌新程序狗

    而且从右往左算,左边那个不应该是先取值么?

    2019-02-23 23:11:53

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题