为何 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) <<" ";

更新于: 26-Jun-2020

6K+ 浏览

开启您的 职业生涯

通过完成课程获得认证

马上开始
广告