Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个关于 C/C++ 数组的问题。
为什么数组的索引从“0”而不是“1”开始?
这有什么数学上的原因吗?
在大多数编程语言中,任何数组的名称都是一个指针,它只不过是对内存位置的引用,因此表达式 array[n] 指向距离第一个元素 n 个元素的内存位置。这意味着索引被用作偏移量。数组的第一个元素恰好包含在数组指向的内存位置(0 个元素之外),因此它应该始终称为数组 [0]。
a[i] 也可以读取为 [a+i] 处的值,表示为 *(a+i) ,因此它始终从零开始。