问答详情
源自:3-3 自增与自减运算符

不明白是怎么算的,为什么是100而不是101

#include <stdio.h>

int main()

{

    int x = 100;

    printf("x=%d\n",x++);

    return 0;

}

不明白这个为什么是100而不是101,x++先取值是100,然后再自加,不是应该是101吗,是我哪里理解错了?求解


提问者:慕后端33525816 2018-03-03 21:07

个回答

  • qq_千影_0
    2018-04-03 19:32:01

    确实是101,不过显示出来的是100,因为取值是100,还有1个相当于隐形的,在心里,所以,在下面第二排再次加1时,就变成102,而第三排减1,因为是先减再取值,所以是101 ,而第四,先取值再减,所以显示的是101,但是其实应该是100了。

  • 慕UI9711534
    2018-03-03 21:31:02

    执行printf的时候,x取值100。printf方法执行完毕,x才自加。

  • 慕莱坞455360
    2018-03-03 21:29:46

    x++运算优先级是:程序先按照原先数值(100)运行,该次运行完成后 自+1,故在执行完printf("x = %d \n,x++")之后 x的数值才等于101,打印过程仍旧为100.