여기서 우리는 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