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开始编号?的主要内容,如果未能解决你的问题,请参考以下文章

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

数据结构与算法之美04-数组:为什么很多编程语言中数组都从0开始编号?

基础篇3 # 数组:为什么很多编程语言中数组都从0开始编号?

基础篇3 # 数组:为什么很多编程语言中数组都从0开始编号?

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

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