为什么Java中的数组索引从0开始?

新手上路,请多包涵

为什么数组索引在 Java 等编程语言中使用 0 而不是 1?我是 Java 的新手,欢迎任何解释。

原文由 Shashank Agarwal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 890
3 个回答

Java 使用从零开始的索引,因为 c 使用从零开始的索引。 C 使用从零开始的索引,因为数组索引只不过是一个内存偏移量,所以数组的第一个元素位于它已经指向的内存中, *(array+0)

另请参阅维基百科的 不同语言的数组索引?

原文由 Kevin 发布,翻译遵循 CC BY-SA 4.0 许可协议

为了扩展 @Kevin 的回答,我引用了 Programmers.SE 上的一个回答

数组中的索引并不是真正的索引。它只是一个偏移量,即距数组开头的距离。第一个元素位于数组的开头,因此没有距离。因此偏移量为 0。

此外,如果您想了解更多有关不同语言如何进行数组索引的信息,请查看 维基百科 上的详尽列表。

原文由 Engineer2021 发布,翻译遵循 CC BY-SA 3.0 许可协议

新手上路,请多包涵

没说到点上,索引从1开始也不是不行,但每一次计算偏移量的时候都会增加一次运算,积少成多影响性能,所以从性能层面考虑索引要从零开始。(如有错误请指正)

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏