首页 > 编程语言 > 详细

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

时间:2018-10-12 10:10:19      阅读:188      评论:0      收藏:0      [点我收藏+]

从数组的内存模型上来看,“下标”最确切的定义应该是“偏移(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开始编号?

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!