3 回答

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
它是數(shù)組引用的語(yǔ)法 - 您需要使用它(&array)
來(lái)向編譯器說(shuō)明您希望引用數(shù)組,而不是(無(wú)效)引用數(shù)組int & array[100];
。
編輯:一些澄清。
void foo(int * x);void foo(int x[100]);void foo(int x[]);
這三種是聲明相同功能的不同方式。它們都被視為接受int *
參數(shù),您可以將任何大小的數(shù)組傳遞給它們。
void foo(int (&x)[100]);
這只接受100個(gè)整數(shù)的數(shù)組。您可以放心地使用sizeof
上x
void foo(int & x[100]); // error
這被解析為“引用數(shù)組” - 這是不合法的。

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
這只是必需的語(yǔ)法:
void Func(int (&myArray)[100])
^ int
通過(guò)引用參數(shù)名稱(chēng)傳遞100 的數(shù)組myArray
;
void Func(int* myArray)
^傳遞一個(gè)數(shù)組。數(shù)組衰減為指針。因此,您丟失了大小信息。
void Func(int (*myFunc)(double))
^傳遞函數(shù)指針。該函數(shù)返回一個(gè)int
并取一個(gè)double
。參數(shù)名稱(chēng)是myFunc
。

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
這是一種語(yǔ)法。在函數(shù)參數(shù)int (&myArray)[100]
中,括起來(lái)的括號(hào)&myArray
是必要的。如果你不使用它們,你將會(huì)傳遞一個(gè)array of references
,因?yàn)樗?code>subscript operator []具有更高的優(yōu)先級(jí)& operator
。
例如 int &myArray[100] // array of references
因此,通過(guò)使用type construction ()
您告訴編譯器您希望引用100個(gè)整數(shù)的數(shù)組。
例如 int (&myArray)[100] // reference of an array of 100 ints
- 3 回答
- 0 關(guān)注
- 514 瀏覽
添加回答
舉報(bào)