มันเป็นไวยากรณ์สำหรับการอ้างอิงอาร์เรย์ - คุณจำเป็นต้องใช้(&array)
ในการชี้แจงการคอมไพเลอร์ที่คุณต้องการการอ้างอิงไปยังอาร์เรย์มากกว่า (ไม่ถูกต้อง) int & array[100];
อาร์เรย์ของการอ้างอิง
แก้ไข: ชี้แจงบางส่วน
void foo(int * x);
void foo(int x[100]);
void foo(int x[]);
ทั้งสามนี้เป็นวิธีการที่แตกต่างกันในการประกาศฟังก์ชั่นเดียวกัน พวกเขาทั้งหมดถือว่าเป็นint *
พารามิเตอร์คุณสามารถผ่านอาร์เรย์ขนาดใด ๆ ให้พวกเขา
void foo(int (&x)[100]);
สิ่งนี้ยอมรับเฉพาะอาร์เรย์ของจำนวนเต็ม 100 ตัว คุณสามารถใช้sizeof
บนx
void foo(int & x[100]); // error
นี่คือการแยกวิเคราะห์เป็น "อาร์เรย์ของการอ้างอิง" - ซึ่งไม่ถูกกฎหมาย