3 回答
TA貢獻1111條經驗 獲得超0個贊
它是數組引用的語法 - 您需要使用它(&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
這被解析為“引用數組” - 這是不合法的。
TA貢獻1794條經驗 獲得超8個贊
這只是必需的語法:
void Func(int (&myArray)[100])
^ int通過引用參數名稱傳遞100 的數組myArray;
void Func(int* myArray)
^傳遞一個數組。數組衰減為指針。因此,您丟失了大小信息。
void Func(int (*myFunc)(double))
^傳遞函數指針。該函數返回一個int并取一個double。參數名稱是myFunc。
TA貢獻1784條經驗 獲得超2個贊
這是一種語法。在函數參數int (&myArray)[100]中,括起來的括號&myArray是必要的。如果你不使用它們,你將會傳遞一個array of references,因為它subscript operator []具有更高的優先級& operator。
例如 int &myArray[100] // array of references
因此,通過使用type construction ()您告訴編譯器您希望引用100個整數的數組。
例如 int (&myArray)[100] // reference of an array of 100 ints
- 3 回答
- 0 關注
- 521 瀏覽
添加回答
舉報
