溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么更好的進(jìn)行C++引用

發(fā)布時(shí)間:2021-11-29 16:31:40 來(lái)源:億速云 閱讀:153 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“怎么更好的進(jìn)行C++引用”,在日常操作中,相信很多人在怎么更好的進(jìn)行C++引用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么更好的進(jìn)行C++引用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

【例1】:int a; int &ra=a; //定義引用ra,它是變量a的C++引用,即別名

(1)&在此不是求地址運(yùn)算,而是起標(biāo)識(shí)作用。
(2)類型標(biāo)識(shí)符是指目標(biāo)變量的類型。
(3)聲明引用時(shí),必須同時(shí)對(duì)其進(jìn)行初始化。
(4)引用聲明完畢后,相當(dāng)于目標(biāo)變量名有兩個(gè)名稱,即該目標(biāo)原名稱和引用名,且不能再把該引用名作為其他變量名的別名。
ra=1; 等價(jià)于 a=1;
(5)聲明一個(gè)引用,不是新定義了一個(gè)變量,它只表示該引用名是目標(biāo)變量名的一個(gè)別名,它本身不是一種數(shù)據(jù)類型,因此引用本身不占存儲(chǔ)單元,系統(tǒng)也不給引用分配存儲(chǔ)單元。故:對(duì)引用求地址,就是對(duì)目標(biāo)變量求地址。&ra與&a相等。
(6)不能建立數(shù)組的引用。因?yàn)閿?shù)組是一個(gè)由若干個(gè)元素所組成的集合,所以無(wú)法建立一個(gè)數(shù)組的別名。
引用應(yīng)用

【例2】:

void swap(int &p1, int &p2) //此處函數(shù)的形參p1, p2都是引用   { int p; p=p1; p1=p2; pp2=p; }

為在程序中調(diào)用該函數(shù),則相應(yīng)的主調(diào)函數(shù)的調(diào)用點(diǎn)處,直接以變量作為實(shí)參進(jìn)行調(diào)用即可,而不需要實(shí)參變量有任何的特殊要求。如:對(duì)應(yīng)上面定義的swap函數(shù),相應(yīng)的主調(diào)函數(shù)可寫(xiě)為:

main( )  {    int a,b;   cin>>a>>b; //輸入a,b兩變量的值   swap(a,b); //直接以變量a和b作為實(shí)參調(diào)用swap函數(shù)    cout<<a<< ' ' <<b; //輸出結(jié)果   }

上述程序運(yùn)行時(shí),如果輸入數(shù)據(jù)10 20并回車后,則輸出結(jié)果為2010。

由【例2】可看出:
(1)傳遞引用給函數(shù)與傳遞指針的效果是一樣的。這時(shí),被調(diào)函數(shù)的形參就成為原來(lái)主調(diào)函數(shù)中的實(shí)參變量或?qū)ο蟮囊粋€(gè)別名來(lái)使用,所以在被調(diào)函數(shù)中對(duì)形參變量的操作就是對(duì)其相應(yīng)的目標(biāo)對(duì)象(在主調(diào)函數(shù)中)的操作。
(2)使用C++引用傳遞函數(shù)的參數(shù),在內(nèi)存中并沒(méi)有產(chǎn)生實(shí)參的副本,它是直接對(duì)實(shí)參操作;而使用一般變量傳遞函數(shù)的參數(shù),當(dāng)發(fā)生函數(shù)調(diào)用時(shí),需要給形參分配存儲(chǔ)單元,形參變量是實(shí)參變量的副本;如果傳遞的是對(duì)象,還將調(diào)用拷貝構(gòu)造函數(shù)。因此,當(dāng)參數(shù)傳遞的數(shù)據(jù)較大時(shí),用引用比用一般變量傳遞參數(shù)的效率和所占空間都好。
(3)使用指針作為函數(shù)的參數(shù)雖然也能達(dá)到與使用引用的效果,但是,在被調(diào)函數(shù)中同樣要給形參分配存儲(chǔ)單元,且需要重復(fù)使用"*指針變量名"的形式進(jìn)行運(yùn)算,這很容易產(chǎn)生錯(cuò)誤且程序的閱讀性較差;另一方面,在主調(diào)函數(shù)的調(diào)用點(diǎn)處,必須用變量的地址作為實(shí)參。而引用更容易使用,更清晰。

到此,關(guān)于“怎么更好的進(jìn)行C++引用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI