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

int x=0,应该是x++=1 ++x=2啊,为什么x++=0

我纠结的是x=0时,x++和++x为什么一个值为0,一个值为2

提问者:Aze阿泽 2015-06-07 21:59

个回答

  • Perona
    2015-06-07 22:08:59

    x++是先取值后运算,那么 printf("x=%d\n",x++);这时候先取x的值是0就直接输出x的值,所以它输出的值就是0。取到值以后的运算并不影响到这个输出语句。

    ++x是先运算后取值,上一个输出语句printf("x=%d\n",x++);运算后x=1,那么现在就是在x=1的基础上运算再取值,所以x又自增1了,即1+1,这时候的printf("x=%d\n",++x);就输出了2。