i=i++等於幾?操作不止一步

i=i++;我們通過學習知道得到的i的值不變

<code>int i=10;
i=i++;
System.out.println(i);/<code>


i=i++等於幾?操作不止一步

i=i++

通常如果只是用的話,記住i在前邊先賦值(i=i++,結果等於10),i在後邊後賦值(i=++i,結果等於11)

底層是怎麼實現i++的呢?

底層上的i++實際上是分為三步操作

<code>int  i=10;
i=i++;//10

//三步
int temp = i
i=i+1;
i=temp; /<code>

這樣不是很好理解,如果把i=i++換成j=i++

<code> int  i=10;
int j=i++;//10

//分為三步
int temp = i
i=i+1;
j=temp; /<code>

雖然經過了+1的操作,但是又被臨時變量覆蓋,所以值不變。


分享到:


相關文章: