W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
不單是結(jié)構(gòu)能按引用傳遞,所有其他我們見過的類型同樣可以。例如,我們可以這么寫,來交換兩個(gè)整數(shù):
void swap (int& x, int& y)
{
int temp = x;
x = y;
y = temp;
}
用普通方式調(diào)用這個(gè)函數(shù):
int i = 7;
int j = 9;
swap (i, j);
cout << i << j << endl;
程序輸出97。你可以為程序畫出棧圖來說服自己這是正確的。如果參數(shù)x和y聲明為普通參數(shù)(沒有加上&符號),則swap函數(shù)無效。它會修改x和y,而對i和j沒有影響。
當(dāng)人們開始通過引用傳遞東西,例如整型時(shí),他們經(jīng)常試圖使用表達(dá)式作為引用參數(shù)。如:
int i = 7;
int j = 9;
swap (i, j+1); //錯(cuò)誤!
這是不合法的,因?yàn)楸磉_(dá)式j(luò)+1并不是一個(gè)變量---它并沒有占據(jù)一個(gè)引用可以指向的地址。弄清楚什么類型的表達(dá)式可以傳引用是一個(gè)小技巧。目前一個(gè)好的規(guī)則是引用參數(shù)必須是變量。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: