為何 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) <<" ";
廣告