我对C / C ++数组有疑问。
为什么数组的索引从' 0'开始。不是来自' 1'?
这有什么数学原因吗?
答案 0 :(得分:21)
在大多数编程语言中,任何数组的名称都是一个指针,它只是对内存位置的引用,因此表达式array [n]指向一个内存位置,该内存位置是远离第一个的n元素元件。这意味着索引用作偏移量。数组的第一个元素完全包含在数组指向的内存位置(0个元素之外),因此应始终将其称为array [0]。
a [i]也可以在[a + i]处读取,表示为*(a + i),因此它始终从零开始。