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