นี่คือเทคนิคน่าสนใจใน C หรือ C++ การเข้าถึงอาร์เรย์ A[i] สามารถเขียนเป็น i[a] ได้ด้วย ใน C/C++ E1[E2] ถูกนิยามว่า (*((E1) + (E2))) คอมไพเลอร์ทำคณิตศาสตร์ภายในเพื่อเข้าถึงสมาชิกอาร์เรย์ เนื่องจากกฎการแปลงที่ใช้กับตัวดำเนิการบวกแบบไบนารี หาก E1 เป็นอ็อบเจกต์อาร์เรย์ และ E2 เป็นจำนวนเต็ม E1[E2] หมายถึงสมาชิกที่ E2 ในอาร์เรย์ E1 ดังนั้น 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