为什么很多编程语言中,数组要从0开始编号?
从数组存储的内存模型上看,下标最确切的定义是偏移量。 从0开始编号,在计算a[i]的内存地址时,公式为 a[i]_address = base_address + i * data_type_size, 如果数组从1开始编号,公式为 a[i]_address = base_address + (i -1) * data_type_size。 对CPU而言,就多了一次减法指令。 最主要的原因应该是历史问题,C语言的设计者使用了0开始编号,后续的很多语言也就沿用了这个规矩。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

更多精彩