5数组:为什么很多编程语言中数组都从0开始编号?
Posted cherishzeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5数组:为什么很多编程语言中数组都从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开始编号?的主要内容,如果未能解决你的问题,请参考以下文章
数据结构与算法之美04-数组:为什么很多编程语言中数组都从0开始编号?
基础篇3 # 数组:为什么很多编程语言中数组都从0开始编号?
基础篇3 # 数组:为什么很多编程语言中数组都从0开始编号?