為何 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+ 瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

馬上開始
廣告