亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過引用傳遞數組

通過引用傳遞數組

C++
開滿天機 2019-08-06 14:10:32
通過引用傳遞數組如何通過引用傳遞靜態分配的數組?void foo(int (&myArray)[100]){}int main(){     int a[100];     foo(a);}是否(&myArray)[100]有任何意義或只是通過引用傳遞任何數組的語法?我不明白單獨的括號后跟大括號。謝謝。
查看完整描述

3 回答

?
catspeake

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個整數的數組。您可以放心地使用sizeofx

void foo(int & x[100]); // error

這被解析為“引用數組” - 這是不合法的。


查看完整回答
反對 回復 2019-08-06
?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

這只是必需的語法:

void Func(int (&myArray)[100])

int通過引用參數名稱傳遞100 的數組myArray;

void Func(int* myArray)

^傳遞一個數組。數組衰減為指針。因此,您丟失了大小信息。

void Func(int (*myFunc)(double))

^傳遞函數指針。該函數返回一個int并取一個double。參數名稱是myFunc。


查看完整回答
反對 回復 2019-08-06
?
一只斗牛犬

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


查看完整回答
反對 回復 2019-08-06
  • 3 回答
  • 0 關注
  • 521 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號