在许多编程语言中,数组索引从0开始。是否有理由设计它?
据我所知,如果数组的长度等于最后一个索引会更方便。我们可以避免大多数ArrayIndexOutOfBounds
例外。
我可以理解像C
这样的语言。 C
是一种古老的语言,开发人员可能没有考虑过问题和不适。但是对于像Java这样的现代语言,他们仍然有机会重新定义设计。他们为什么选择保持不变?
它是否与操作系统的工作有关或者他们是否真的想继续使用熟悉的行为或设计结构(尽管新程序员面临很多与此相关的问题)?
答案 0 :(得分:6)
数组索引只是一个内存偏移量
所以数组的第一个元素是在它已经指向的内存中,这只是简单的
*(arr) == *(arr+0)
。