[轉載]深刻探討C++中的引用

摘要:介紹C++引用的基本概念,經過詳細的應用分析與說明,對引用進行全面、透徹地闡述。

關鍵詞:引用,const,多態,指針

引用是C++引入的新語言特性,是C++經常使用的一個重要內容之一,正確、靈活地使用引用,可使程序簡潔、高效。我在工做中發現,許多人使用它僅僅是想固然,在某些微妙的場合,很容易出錯,究其起因,大多由於沒有搞清本源。故在本篇中我將對引用進行詳細討論,但願對你們更好地理解和使用引用起到拋磚引玉的做用。

引用簡介

引用就是某一變量(目標)的一個別名,對引用的操做與對變量直接操做徹底同樣。

引用的聲明方法:類型標識符 &引用名=目標變量名;

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

說明:

(1)&在此不是求地址運算,而是起標識做用。

(2)類型標識符是指目標變量的類型。

(3)聲明引用時,必須同時對其進行初始化。

(4)引用聲明完畢後,至關於目標變量名有兩個名稱,即該目標原名稱和引用名,且不能再把該引用名做爲其餘變量名的別名。

ra=1; 等價於 a=1;

(5)聲明一個引用,不是新定義了一個變量,它只表示該引用名是目標變量名的一個別名,它自己不是一種數據類型,所以引用自己不佔存儲單元,系統也不給引用分配存儲單元。故:對引用求地址,就是對目標變量求地址。&ra與&a相等。

(6)不能創建數組的引用。由於數組是一個由若干個元素所組成的集合,因此沒法創建一個數組的別名。

引用應用

一、引用做爲參數

引用的一個重要做用就是做爲函數的參數。之前的C語言中函數參數傳遞是值傳遞,若是有大塊數據做爲參數傳遞的時候,採用的方案每每是指針,由於這樣能夠避免將整塊數據所有壓棧,能夠提升程序的效率。可是如今(C++中)又增長了一種一樣有效率的選擇(在某些特殊狀況下又是必須的選擇),就是引用。

【例2】:

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

爲在程序中調用該函數,則相應的主調函數的調用點處,直接以變量做爲實參進行調用便可,而不須要實參變量有任何的特殊要求。如:對應上面定義的swap函數,相應的主調函數可寫爲:

main( )
{
int a,b;
cin>>a>>b; //輸入a,b兩變量的值
swap(a,b); //直接以變量a和b做爲實參調用swap函數
cout<}

上述程序運行時,若是輸入數據10 20並回車後,則輸出結果爲20 10。
html

閱讀全文
類別: c/c++  查看評論
相關文章
相關標籤/搜索