為什么數組的下標都是從0開始而不是1?


假如數組的首地址 是 base_address

如果索引從 1 開始計,元素 a[1] 是第一個元素,它的地址就是 base_address,當我們要獲取第 8 個元素 a[8] 的數據時,計算機就要找到元素 a[8] 所在的地址,計算公式就是 base_address + (8-1)* type_size 。

如果索引從 0 開始計,元素 a[0] 是第一個元素,它的地址就是 base_address,當我們要獲取第 8 個元素 a[7] 的數據時,計算機就要找到元素 a[7] 所在的地址,計算公式就是 base_address + 7 * type_size 。

我們發現,索引從 0 開始,尋址時會少做一次減法,這就是一個優化,別小看這種優化,計算的數量一旦上去,比如上億次計算,那積累起來的優勢是相當可觀的。

其實,各種算法的優化,本質都是一樣的,讓計算機做更少的計算,只有做的事情少了,效率才會提高。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM