为什么大多数编程语言中的数组索引都为零?

Par*_*ste 5 arrays indexing

C++,C#,C,D,Java,...基于零.

Matlab是我所知道的唯一从1开始的语言.

rer*_*run 5

数组在c和c ++中为零,表示从项列表开头的偏移量.

这两行在c中具有相同的结果.

anArray[3] = 4;
*(anArray +3) = 4; 
Run Code Online (Sandbox Code Playgroud)

第一个是标准索引器,第二个是指针将id添加到id然后解除它.哪个与索引器相同.


Kar*_*ath 0

我想这主要是历史原因,新语言只是尝试使用程序员熟悉的现有约定。

该规则起源的较旧语言接近金属,索引实际上是距起始元素的距离,因此0对于第一个元素是有意义的。