java中 i++ 與 ++i 的區別與原理探究

衆所周知,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 亦是同理!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章