ที่นี่เราจะเห็นเคล็ดลับที่น่าทึ่งอย่างหนึ่งใน 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