为什么Array索引从'0'开始

时间:2013-06-03 08:38:40

标签: c++ c arrays

我对C / C ++数组有疑问。

为什么数组的索引从' 0'开始。不是来自' 1'?

这有什么数学原因吗?

1 个答案:

答案 0 :(得分:21)

在大多数编程语言中,任何数组的名称都是一个指针,它只是对内存位置的引用,因此表达式array [n]指向一个内存位置,该内存位置是远离第一个的n元素元件。这意味着索引用作偏移量。数组的第一个元素完全包含在数组指向的内存位置(0个元素之外),因此应始终将其称为array [0]。

a [i]也可以在[a + i]处读取,表示为*(a + i),因此它始终从零开始。