問題來源:
int x=5;int j=1;
j=x-j++; 運行結果為4,按照之前的認知為5,故出現了問題。。
資料來源:CSDN 作者:android_cai_niao
發現之前的理解錯誤:有很多的人寫的文章上都是說i++是先返回i的值,然后再自增,這是錯誤,是先自增,然后再返回自增之前的值,你可能會問,這有區別嗎?答案:有的。只要這個沒理解對,則你在計算i++的相關問題時就有可能算錯。
幾個典型代碼實例:
原理:i++ 即后加加,原理是:先自增,然后返回自增之前的值,++i 即前加加,原理是:先自增,然后返回自增之后的值
重點:這是一般人所不知道的,記住:不論是前++還是后++,都有個共同點是先自增。
例五:
a = a++; a++之后a的值為1,並返回0,所以a的值由1又變回了0
b = a++; a++之后a的值為1,並返回0,0賦值給b,所以b為0,而a還是1哦!!
總結:
i++ 即后加加,原理是:先自增,然后返回自增之前的值
++i 即前加加,原理是:先自增,然后返回自增之后的值
一個變量也是表達式,多個表達式的加減法運算都是從左到右進行的