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