Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tại sao chỉ mục mảng bắt đầu từ 0 trong C / C ++?


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