i 相比 i 哪個更高效 為什麼?

2022-05-28 06:21:09 字數 507 閱讀 2211

++i的效率高些,++i在運算過程中不產生臨時物件,返回的就是i,是個左值,類似++i=1這樣的表示式是合法的,而i++在運算的過程中會產生臨時物件,返回的是零時物件的值,是個右值,像i++=1這樣的表示式是非法的

對於內建型別,單獨的i++和++i語句,現在的編譯器基本上都會優化成++i,所以就沒什麼區別。

考慮內建資料型別時,它們的效率差別不大(去除編譯器優化的影響)。所以在這種情況下我們大可不必關心。

現在讓我們再考慮自定義資料型別(主要是指類)的情況。此時我們不需要再做很多彙編**的分析了,因為字首式(++i)可以返回物件的引用,而字尾式(i++)必須產生乙個臨時物件儲存更改前物件的值並返回(實現過自定義型別++運算子定義的就知道),所以導致在大物件的時候產生了較大的複製開銷,引起效率降低,因此處理使用者自定義型別(注意不是指內建型別)的時候,應該盡可能的使用字首式地增/遞減,因為他天生體質較佳。

內建資料型別的情況,效率沒有區別。

自定義資料型別的情況,++i效率較高。

i 與i 哪個效率更高?

解析 在這裡宣告,簡單的比較字首自增運算子和字尾自增運算子的效率是片面的,因為存在很多因素影響這個問題的答案。首先考慮內建資料型別的情況 如果自增運算表示式的結果沒有被使用,而是僅僅簡單的用於增加一員運算元,答案是明確的,字首法和字尾法沒有任何區別,編譯器的處理都應該是相同的,很難想象得出有什麼編譯...

面試題 i 和 i哪個效率更高

include int main 簡單地比較字首自增運算子和字尾自增運算子的效率是片面的,因為存在很多因素影響這個問題的答案。考慮內建資料型別的時候,它們的效率差別不大 去除編譯器的影響 考慮自定義資料型別 主要是指類 的情況。此時我們不需要再做很多彙編 的分析,因為字首式 i 可以返回物件的引用,...

i7 8565u和i5 1035G 相比哪個好

i5 1035g1 這是第十代酷睿低壓版處理器,用在輕薄本上,效能一般,適合普通辦公或家用,不適合玩大中型遊戲,也不適合執行大型軟體。i7 8565u和i5 1035g 這幾點差距太明顯,評價說的太對了 i7 8565u 第八代低壓版依然是kaby lake u架構,酷睿i5和i7直接從雙核四執行緒...