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