为什么常见编程语言,都是从0开始的?

今天看到一篇有意思的文章 为什么编程语言总爱从0开始数数?,感觉之前好像从来没有仔细思考过这个问题。因为当初学编程,就是从 C 语言入手的,所以就死记硬背住了这条规则,但一直也没有深入的思考过,为什么数组的下标要从0开始

0到底代表什么?

数组的 0 其实表示的其实是offset(偏移量)而不是 index(索引)

数组什么时候开始以0开始的

1969年,B语言首次引入"0基索引",这个设定被后来的C语言继承,并随着Unix系统的崛起席卷全球,从此沿用至今

数组已 0 开始有什么好处?

从数学角度来看,就是好算,比如,数组有 0-9 10个汉字,每个汉字占2个字节,第3个汉字(蓝色)的起始地址是什么?
如果从0开始计算,很容易能总结出来如下规律i地址 = 起始地址 + i*2
即可的: 0+22 = 4
如果从1开始计算,很容易能总结出来如下规律i地址 = 起始地址 + (i-1)*2
即可的: 1+(3-1)
2=5

————————————
根据如上的公司套用,公式1显然比公式2更简洁,而且B语言发明之初,cpu性能非常低,如果能在每次查地址的时候,少进行一次减法运算,对计算机性能可能会有质的提升。

参考

https://mp.weixin.qq.com/s/gux7cTXhiZ7sKhwROb2l-w

posted @ 2025-02-15 19:29  沧海一声笑rush  阅读(41)  评论(0)    收藏  举报