衆所周知,i++是先賦值自增,++i是先自增後賦值
但是有時候,有些題目會考到你對 i++ 與 ++i 的深層原理理解
例如
int a = 4;
a = a++;
問最後a=( )
是不是會以爲答案是5,但實際上答案是4!爲什麼呢?
我們用代碼來表示 i++ 與 ++i 的原理
1、++i
int i = 5;
i = i + 1;
return i;
毫無疑問返回的值將是5!
2、i++
int i = 5;
int k = i;
i = i + 1;
return k;
也就是說,i++是先將原值保存在另一個變量上,返回時將另一個變量的值返回!這樣就可以解釋上述題目中答案爲什麼是4了!
i-- 與 --i 亦是同理!