码迷,mamicode.com
首页 > 编程语言 > 详细

5、数组:为什么很多编程语言中数组都从0开始编号?

时间:2018-10-12 11:01:50      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:应该   很多   内存地址   内存   address   表示   计数   ase   ddr   

从数组的内存模型上来看,“下标”最确切的定义应该是“偏移(offset)”。那么a[0]就是偏移为0 的位置,即首地址,a[k]就表示偏移k个type_size的位置,所以计算a[k]的内存地址:

  a[k]_address = base_adress+k*typ_size

但是,如果从1开始计数,那么a[k]=base_adress+(k-1)*typ_size。不难发现,从1开始,对CPU而言,多了一次减法指令,那么效率的优化就尽可能做到极致。

5、数组:为什么很多编程语言中数组都从0开始编号?

标签:应该   很多   内存地址   内存   address   表示   计数   ase   ddr   

原文地址:https://www.cnblogs.com/CherishZeng/p/9776130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!