java 的 i 和 i 的區別

2021-08-14 16:26:24 字數 890 閱讀 6305

我知道網上有很多這樣的文章了,在這我只是想記錄一下,總結一下,就當備忘錄吧。

一、什麼區別?

1、i++ 先運算再加一,++i先加一再運算

2、i++ 有中間變數,++i 沒有,理論上++i 相對執行快點

二、**(**裡有詳細的解釋) 

/**

* 總結:i++ 最終去相加的都是中間變數 temp,請看例子

* @author tingliu

* @create 2017-12-19 11:11

**/public class plustest

}/**

* i = i++ 等價於

* temp = i;

* i = i + 1;

* i = temp

* 總結:i++ 有中間快取變數

* * //warning: the assignment to variable j has no effect

* j = ++j 相當於 j = j = j + 1

* 所以編譯器警告, 語句的賦值沒有作用

* * ++i 沒有中間快取變數, 理論上比 i++ 更加高效

*/@test

public void test1()

@test

public void test2()

system.out.println("i的最後結果" + i);

}@test

public void test3()

@test

public void test4()

@test

public void test5()

}

文中有些是摘抄別人的,但是忘記出處了。還望見諒

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...