i和i 的區別詳解

2021-10-23 19:09:24 字數 802 閱讀 9115

a = i++; 類似於:

a = i;

i = i +

1;

a = ++i; 類似於:

i = i +

1;a = i;

i++和++i的 最重要的區別就是 +1和返回值順序從效率上來說++i比i++來的更有效率,因為i++多宣告了乙個過渡的變數。如下所示:

int temp;

temp = i;

i = i+1;

return temp;

i = i+1;

return i;

比如printf("%d",i++);是先輸出i值隨後i自加,而printf("%d",++i);中i先加1再輸出,即輸出的結果為i大1的數字。

對於for迴圈:

for(operation1;operation2;operation3)

迴圈是按下面的順序來執行的:

operation1

operation2

//do something

operation3

因此i++與++i在單獨的語句中結果是一樣的。

簡單而言:

++i 在 i 儲存的值上增加一併向使用它的表示式返回新的, 增加後的值; 即先加再返回值。

而 i++ 對 i 增加一, 但返回原來的是未增加的值。即先返回再加。

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