Mảng arr [i] được hiểu là * (arr + i). Ở đây, arr biểu thị địa chỉ của phần tử mảng đầu tiên hoặc phần tử chỉ số 0. Vì vậy, * (arr + i) có nghĩa là phần tử ở khoảng cách i từ phần tử đầu tiên của mảng. Vì vậy, chỉ số mảng bắt đầu từ 0 vì ban đầu tôi là 0 có nghĩa là phần tử đầu tiên của mảng.
Một chương trình chứng minh điều này trong C ++ như sau.
Ví dụ
#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;
} Đầu ra
Kết quả của chương trình trên như sau.
5 8 9 3 5 5 8 9 3 5
Bây giờ chúng ta hãy hiểu chương trình trên.
Một mảng arr [] chứa 5 phần tử. Các phần tử này được hiển thị bằng vòng lặp for với các biểu diễn mảng arr [i] và * (arr + i). Kết quả thu được là giống hệt nhau trong cả hai trường hợp. Đoạn mã hiển thị điều này như sau.
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) <<" ";