數組的索引(下標)為什么從0開始,看完恍然大悟


簡單一句話: 就是為了方便 計算出每個元素的具體內存地址

 

因為數組變量 實際上在內存上儲存的是這個數組變量中第一個元素的的首地址,而系統在取數組中某個元素的值時,必須要得到具體的那個元素的地址才能獲取到對應的值

具體每個元素的內存地址 = 數組變量首地址 + 下標 X 每個元素占用的字節數

 

比如:

 int a[5]={10,11,12,13,14}

因為 int每個元素占用4個字節,所以 數組中每個相鄰的元素內存地址都相差4,

那么每個元素的地址就等於前一個元素的地址 + 4

a[0] 的內存地址    =    a的地址 + 0 * 4  (第一個元素的地址計算結果  跟數組的首地址一樣)

a[1] 的內存地址    =    a的地址 + 1 * 4     (下標是1,內存地址就就是首地址 偏移 4字節)

a[2] 的內存地址    =    a的地址 + 2 * 4    (下標是2,內存地址就首地址 偏移 8字節)

..........

a[5]的內存地址    =    a的地址 + 5 * 4   (下標是5  內存地址就是首地址 偏移 20字節)

 

 如果從1開始 就要減去1,多一步運算,效率自然不讓直接點高

所以數組的索引(下標)從0開始 是為了方便計算每個元素的地址.如果從1開始的話 運算起來沒有從0開始方便

所以 大部分編程語言數組索引都是從0開始


免責聲明!

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



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