Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++ 배열에서 a[i] ==i[a]인 이유는 무엇입니까?

<시간/>

여기서 우리는 C 또는 C++에서 한 가지 놀라운 트릭을 볼 것입니다. 배열 첨자 A[i]는 i[a]로도 쓸 수 있습니다. C/C++에서 E1[E2]는 (*((E1) + (E2)))로 정의됩니다. 컴파일러는 내부적으로 산술 연산을 수행하여 배열 요소에 액세스합니다. 이진 + 연산자에 적용되는 규칙 변환 때문에 E1이 배열 객체이고 E2가 정수이면 E1[[E2]은 E1 배열의 E2번째 요소를 나타냅니다. 따라서 A[B]는 *(A + B)로 정의할 수 있으므로 B[A] =*(B + A)입니다. 그래서 그들은 기본적으로 같은 것입니다.

예시

#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];
}

출력

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