他们为什么不设计从1开始的数组索引?

Mat*_*hai -3 java arrays indexoutofboundsexception

在许多编程语言中,数组索引从0开始.是否有理由设计它?

据我所知,如果数组的长度等于最后一个索引,那将更方便.我们可以避免大多数ArrayIndexOutOfBounds例外.

当谈到像这样的语言时我能理解C.C是一种古老的语言,开发人员可能没有考虑过这些问题和不适.但是对于像Java这样的现代语言,他们仍然有机会重新定义设计.他们为什么选择保持相同?

它是以某种方式与操作系统的工作有关还是他们真的想继续熟悉的行为或设计结构(尽管新程序员面临很多与此相关的问题)?

Ido*_*dos 6

数组索引只是一个内存偏移量.
所以数组的第一个元素是它已经指向的内存,这很简单
*(arr) == *(arr+0).