3

我有一个关于 C/C++ 数组的问题。

为什么数组的索引从“0”而不是“1”开始?

这有什么数学上的原因吗?

4

1 回答 1

28

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

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

于 2013-06-03T08:40:50.097 回答