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

Tại sao a [i] ==i [a] trong mảng C / C ++?

Ở đây chúng ta sẽ thấy một thủ thuật tuyệt vời trong C hoặc C ++. Chỉ số con mảng A [i] cũng có thể được viết là i [a]. Trong C / C ++ E1 [E2] được định nghĩa là (* ((E1) + (E2))). Trình biên dịch thực hiện số học bên trong để truy cập các phần tử của mảng. Do việc chuyển đổi các quy tắc, được áp dụng cho toán tử nhị phân +, nếu E1 là một đối tượng mảng và E2 là một số nguyên, thì E1 [[E2] biểu thị phần tử thứ E2 trong mảng E1. Vì vậy, A [B] có thể được xác định là * (A + B), do đó B [A] =* (B + A). vì vậy về cơ bản chúng giống nhau.

Ví dụ

#include <iostream>
using namespace std;
int main() {
   int array[] = {1, 2, 3, 4, 5, 6, 7};
   cout << "array[5] is " << array[5] << endl;
   cout << "5[array] is " << 5[array];
}

Đầu ra

array[5] is 6
5[array] is 6