java i 和 i的區別

2021-08-08 14:13:40 字數 910 閱讀 3820

之前知道i++和++i的區別:

如下:

int i=0

; system.out

.println(i++);

system.out

.println(i++);

第乙個列印出0,第二個列印出1

int i=0

; system.out

.println(++i);

system.out

.println(++i);

第乙個列印出1,第二個列印出2

就是乙個先滿足別人,乙個先滿足自己啦

當你遇到這種情況,你會認為i是列印出幾?

int i=0;

for(int j=0;j

<10;j++)

system.

out.println(i);

列印出0。

不是說好先賦值再自增嗎?那我是不是可以這樣理解先賦值給左邊的i然後i再自增那豈不是列印出來的還應該是10?難道是編譯器的bug?你贊同嗎?

其實不是的,它應該是這樣的:

1:先賦值 temp=i;

2:再自增 i=i+1;

3:再賦值 i=temp

如果按照我的理解它是這樣的:

1:先賦值 i=i;

2:再自增 i=i+1;

但是編譯器應該不會這樣,大概是i=i沒啥意義,編譯器不會這樣執行。或者基礎變數等號賦值都是先建立乙個臨時變數,然後再把臨時變數賦值給等號左邊。

所以++i應該是這樣的:

1:i=i+1;

2:temp=i;

3:i=temp;

i和i 的區別

大家都應該知道i 和 i的區別,前者是先使用i的值,然後再增加1,而後者是先增加1然後再使用i的值。但是i 和 i那個更好呢?我們實現角度來看 前者是將i值加1後賦給i,然後返回i本身 而後者是先用個臨時變數儲存i值,然後將i值加1賦給i,然後返回臨時變數的值。內建資料型別他們的效率差不多,看他們的...

i 和 i的區別

當年上c 課的時候對於i 和 i的區別就稀里糊塗。後來沒注意也沒出過什麼問題。但是這個問題還是應該搞清楚。假如有乙個vector,值為 1,2,3,4,5,6,7 用以下程式輸出 i 0 while i 7 i 0 while i 7 cout beforei v i endl cout befor...

i 和 i的區別

很多朋友在學習基礎的時候很容易遇到過這個問題,i和i 到底有什麼區別?下面來詳細解釋一下。首先i 和 i單獨為一條語句時沒有任何區別 例如 int i 1 i 單獨為一條語句 system.out.println i i i 2 int i 1 i 單獨為一條語句 system.out.printl...