假如數組的首地址 是 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 開始,尋址時會少做一次減法,這就是一個優化,別小看這種優化,計算的數量一旦上去,比如上億次計算,那積累起來的優勢是相當可觀的。
其實,各種算法的優化,本質都是一樣的,讓計算機做更少的計算,只有做的事情少了,效率才會提高。