为什么在C / C ++中数组索引从零开始?

数组arr [i]解释为*(arr + i)。此处,arr表示第一个数组元素或0索引元素的地址。所以*(arr + i)表示与数组的第一个元素相距i距离的元素。因此数组索引从0开始,因为最初的i为0,这意味着数组的第一个元素。

一个用C ++演示的程序如下。

示例

#include <iostream>
using namespace std;
int main() {
   int arr[] = {5,8,9,3,5};
   int i;
   for(i = 0; i<5; i++)
   cout<< arr[i] <<" ";
   cout<<"\n";
   for(i = 0; i<5; i++)
   cout<< *(arr + i) <<" ";
   return 0;
}

输出结果

上面程序的输出如下。

5 8 9 3 5
5 8 9 3 5

现在让我们了解上面的程序。

数组arr []包含5个元素。这些元素使用带有数组表示形式arr [i]和*(arr + i)的for循环显示。两种情况下获得的结果相同。显示此代码段如下。

int arr[] = {5,8,9,3,5};
int i;
for(i = 0; i<5; i++)
cout<< arr[i] <<" ";
cout<<"\n";
for(i = 0; i<5; i++)
cout<< *(arr + i) <<" ";