Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ทำไมดัชนีอาร์เรย์เริ่มต้นจากศูนย์ใน 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 องค์ประกอบ อิลิเมนต์เหล่านี้แสดงโดยใช้ for loop ที่มีการแทนค่าอาร์เรย์ arr[i] และ *(arr + i) ผลลัพธ์ที่ได้จะเหมือนกันในทั้งสองกรณี ข้อมูลโค้ดที่แสดงเป็นดังนี้

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