21.12 指針真得比數組快嗎?函數調用會拖慢程序多少?  ++i 比 i = i +1 快嗎?

這些問題的精確回答, 跟你所用的處理器和編譯器有關。如果你必 須知道, 你就得小心的給程序計時。通常, 差別是很小的, 小到要經過 千萬次迭代才能看到不同。如果可能, 查看編譯器的彙編輸出, 看看這 兩種方法是否被編譯的一樣。

一般的機器, 通常遍歷大的數組時, 用指針比用數組要快, 但是某些 處理器就相反。

函數調用, 雖然明顯比內聯代碼要慢, 但是它對程序的模塊化和 代碼清晰度的貢獻, 很少有好的理由來避免它。

在修整象 i = i + 1 這樣的代碼前, 記住你是在跟編譯器 打交道, 而不是鍵擊編程的計算器。對於 ++i,  i += 1 和 i = i + 1, 任何好的編譯器都會生成 完全一樣的代碼。使用任何一種形式只跟風格有關, 於效率無關。 參見問題 3.10

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)