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