亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

int x=0,應該是x++=1 ++x=2啊,為什么x++=0

我糾結的是x=0時,x++和++x為什么一個值為0,一個值為2

正在回答

1 回答

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。

1 回復 有任何疑惑可以回復我~
#1

AnswerCainslupus

我想問一下,為什么那里說無論是a++還是++a都等同于a=a+1,在表達式執行完畢后a的值都自增了1,又為什么取值后以后的運算不影響輸入語句?
2015-06-08 回復 有任何疑惑可以回復我~
#2

Perona 回復 AnswerCainslupus

a=a+1這里的a是重新賦值的,那么無論原來的a是先取值后運算(a++)還是先運算后取值(++a),都是自增了1再賦值給a。運算符中優先級++是比=賦值高,所以這2個表達式都是執行完畢再賦值給a,懂了不。。。
2015-06-08 回復 有任何疑惑可以回復我~
#3

AnswerCainslupus 回復 Perona

明白了,謝謝
2015-06-08 回復 有任何疑惑可以回復我~
#4

Perona 回復 AnswerCainslupus

不客氣~~
2015-06-08 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

int x=0,應該是x++=1 ++x=2啊,為什么x++=0

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號