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

2021-08-14 21:19:54 字數 369 閱讀 8271

#include int main()

簡單地比較字首自增運算子和字尾自增運算子的效率是片面的,因為存在很多因素影響這個問題的答案。

考慮內建資料型別的時候,它們的效率差別不大(去除編譯器的影響)。

考慮自定義資料型別(主要是指類)的情況。此時我們不需要再做很多彙編**的分析,因為字首式(++i)可以返回物件的引用,而字尾式必須返回物件的值,所以導致在大物件的時候產生了較大的複製開銷,引起效率降低。因此++i效率更高。

個人理解自定義資料型別這塊,這邊產生較大複製開銷,我感覺類似c++自定賦值運算子函式,因為需要重新delelte原資料空間,返回乙個臨時儲存原資料值的空間。因此多了乙份複製的成本。

i 與i 哪個效率更高?

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

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

i的效率高些,i在運算過程中不產生臨時物件,返回的就是i,是個左值,類似 i 1這樣的表示式是合法的,而i 在運算的過程中會產生臨時物件,返回的是零時物件的值,是個右值,像i 1這樣的表示式是非法的 對於內建型別,單獨的i 和 i語句,現在的編譯器基本上都會優化成 i,所以就沒什麼區別。考慮內建資料...

各種i 和 i面試題測試和過程分析

先看面試題 第1題 int i 5 求i i 結果10 第2題 int i 12 求 i i i i 結果 120 第3題 int i 1 i i int j i int k i i i 結果 i為4,j為1,k為11 第4題 int i 5 i i i i i 結果28 如果你都做對了就不用往下了...