透過引用傳遞陣列:了解語法和功能
考慮以下函數原型:
void foo(int (&myArray)[100]);
This函數接受100 個整數的陣列作為參考參數。然而,語法“&myArray[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]);
此語法被解析為“引用數組”,這不是 C 中的合法聲明。
以上是C 如何處理陣列引用:深入探討文法和功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!