Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ทำไม a[i] == i[a] ในอาร์เรย์ C/C++

นี่คือเทคนิคน่าสนใจใน 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