อาร์เรย์ 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) <<" ";