經常讓小白犯糊塗的i 和 i的區別

2022-09-29 00:42:18 字數 571 閱讀 9198

i++ 和 ++i的區別

1.  i++返回原來的值,++i返回+1後的值。

例如在乙個j**a程式中:

a = i++;可以分解成

a =i;

i = i+1;

a = ++i;可以分解成

i = i+1;

a = i;

分解之後,我們就能很明確的算出結果。i++和++i的主要區別在於+1和返回值的順序。從效率上來講++i要比i++更有效率,因為i++多申明了乙個過渡變數,如下:

i++的實現

int

temp ;

temp =i ;

i = i + 1;

return temp ;

++id實現

i = i + 1;

return i ;

總結:++i是在i儲存的值上加1,並向使用它的表示式返回新的加1後的值,既先加再返回

i++是在i儲存的值上加1,但是返回的是未加1的值,既先返回後再加。

一天乙個小bug,fighting!!!

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