為什麼輸出這樣,有沒有大佬詳細講一下


int i = 1;
int j = i ++ ;//j的值是1,i的值是2
i = 1;
int k = ++i;//i的值是2,j也是2


譚浩強書看多了吧

這是毫無意義的偽問題

自己搜一下什麼叫undefined behavior


更簡單看懂

int i=5

++i是先用5+1=6運算,...6+1........

i++是先用5運算,然後下一輪變成++i

然後得

++i=6

i++=5

沒有什麼意義,結果都是+1。


贊同 wyxsdzz 的觀點。

不過還是解釋一下吧,有些編譯器參數從右向左計算。


我明白了,結合方式自右向左,輸出函數整體運行時,i值才變化


推薦閱讀:
相关文章