1.對於i是內建型別,效率無差別,編譯器會自動優化
2.對於i為非內建型別,效率會存在不同,主要體現在其功能作用不同,++i是將i值自增後返回,而i++是返回(i)的臨時變數,同時將i自增。
可以猜想其過載操作符實現邏輯與下面**類似:
classname classname::
operator
++()
classname
classname::operator
++(
int
)
從上面**可以看出,後置++多了乙個儲存臨時物件的操作,因此效率自然低一些。
因此:對於內建物件都可以
對於非內建物件,最好採用++i格式
i 與 i的效率比較
解析 在這裡宣告,簡單的比較字首自增運算子和字尾自增運算子的效率是片面的,因為存在很多因素影響這個問題的答案。首先考慮內建資料型別的情況 如果自增運算表示式的結果沒有被使用,而是僅僅簡單的用於增加一員運算元,答案是明確的,字首法和字尾法沒有任何區別,編譯器的處理都應該是相同的,很難想象得出有什麼編譯...
i 與 i的效率差別
i 與 i的區別,我就不多說了。今天主要說明一下它們的效率上的差別。如果只是對內建資料型別 如int 兩者的差別很小,基本上沒有,這個可以從彙編 上看出來。但是如果對於c 裡的類,那 i和i 兩個是運算子過載,它們的區別就比較明顯了 i 和 i的 最重要的區別大家都知道就是 1和返回值的順序,但,兩...
i 與i 哪個效率更高?
解析 在這裡宣告,簡單的比較字首自增運算子和字尾自增運算子的效率是片面的,因為存在很多因素影響這個問題的答案。首先考慮內建資料型別的情況 如果自增運算表示式的結果沒有被使用,而是僅僅簡單的用於增加一員運算元,答案是明確的,字首法和字尾法沒有任何區別,編譯器的處理都應該是相同的,很難想象得出有什麼編譯...