先看看基本區別:
i++ :先在i所在的表示式中使用i的當前值,後讓i加1
++i :讓i先加1,然後在i所在的表示式中使用i的新值
++i相當於下列**
i += 1;
return i;
i++相當於下列**
j = i;
i += 1;
return j;
當然如果編譯器會將這些差別都優化掉,那麼效率就都差不多了。
再給大家詳細說下++i 與 i++ 的區別
1、++i 的用法(以 a=++i ,i=2 為例)
先將 i 值加 1 (也就是 i=i+1 ),然後賦給變數 a (也就是 a=i ),
則最終 a 值等於 3 , i 值等於 3 。
所以 a=++i 相當於 i=i+1 ,a=i
2、i++ 的用法(以 a=i++ ,i=2 為例)
先將 i 值賦給變數 a (也就是 a=i ),然後 i 值加 1 (也就是 i=i+1 ),
則最終 a 值等於 2 ,i 值等於 3 。
所以 a=i++ 相當於 a=i , i=i+1
3、++i 與 i++
a=++i 相當於 i++ , a=i
a=i++ 相當於 a=i , i++
4、++i 與 i++ 單獨使用時,相當於 i=i+1
如果賦給乙個新變數,則 ++i 先將 i 值加 1 ,而 i++ 先將 i 賦給新變數。
i 與 i的效率差別
i 與 i的區別,我就不多說了。今天主要說明一下它們的效率上的差別。如果只是對內建資料型別 如int 兩者的差別很小,基本上沒有,這個可以從彙編 上看出來。但是如果對於c 裡的類,那 i和i 兩個是運算子過載,它們的區別就比較明顯了 i 和 i的 最重要的區別大家都知道就是 1和返回值的順序,但,兩...
i 與 i的效率比較
解析 在這裡宣告,簡單的比較字首自增運算子和字尾自增運算子的效率是片面的,因為存在很多因素影響這個問題的答案。首先考慮內建資料型別的情況 如果自增運算表示式的結果沒有被使用,而是僅僅簡單的用於增加一員運算元,答案是明確的,字首法和字尾法沒有任何區別,編譯器的處理都應該是相同的,很難想象得出有什麼編譯...
java中i 與 i的區別
直接給大家看 就明白了。package cong.test i與i 的區別 author cong public class jiajia system.out.println int h 0 while h 5 執行出來的結果是 區別在於你是否要用 i或i 這一時刻的值進行操作。其實你可以想象這時...