天天看點

C++語言引用的介紹和示例引用的概念引用的應用版權聲明 

       對于習慣使用C進行開發的程式員來說,在看到C++中出現的&符号,可能會犯迷糊,因為在C語言中這個符号表示了取位址符,但是在C++中,它除了取位址,還有其它的用途,叫做引用(reference),引用是C++引入的新語言特性。

引用的概念

       引用就是某一變量(目标)的一個别名,對引用的操作與對變量直接操作完全一樣。

       引用的聲明方法:類型辨別符 &引用名=目标變量名;

       例如:

              int a;

              int &ra=a;  // 定義引用ra,它是變量a的引用,即别名。

       說明:

       1)&在此不是求位址運算,而是起辨別作用。

       2)類型辨別符是指目标變量的類型。

       3)聲明引用時,必須同時對其進行初始化,否則編譯器會報錯。

       4)引用聲明後,相當于目标變量名有兩個名稱,即該目标原名稱和引用名,且不能再把該引用名作為其他變量名的别名。

              ra=1;  等價于  a=1;

       5)聲明一個引用,不是新定義了一個新的變量,它隻表示該引用名是目标變量名的一個别名,它本身不是一種資料類型,是以引用本身不占存儲單元,系統也不給引用配置設定存儲單元。

       6)不能建立數組的引用。因為數組是一個由若幹個元素所組成的集合,是以無法建立一個數組的别名。

引用可以用const修飾,表示隻讀,用這種方式聲明的引用,不能通過引用對目标變量的值進行修改。

                int a;

                const int &ra=a;

                a=10;    // 可以

                ra=10;   // 不行

引用的應用

       引用的主要作用就是作為函數的參數。以前的C語言中函數參數傳遞是值傳遞,如果有大塊資料作為參數傳遞的時候,采用的方案是資料的位址。但是在C++中,又增加了一種同樣有效率的選擇,就是引用。

       示例(book212.cpp)

C++語言引用的介紹和示例引用的概念引用的應用版權聲明 

       運作結果

C++語言引用的介紹和示例引用的概念引用的應用版權聲明 

       從以上的示例可以看出,傳遞引用給函數與傳遞指針的效果是一樣的。這時,被調函數的參數就成為調用者調函數中的變量或對象的一個别名來使用,是以在被調函數中對引用的操作就是對目标變量的操作。

       在很多資料中,把引用的優點過于誇大,在我看來,引用的好處就是調用函數的時候,不用填寫取位址符&,子函數中也不寫取變量符*,結構體和類不用->取成員。我更傾向傳遞位址的方式,因為更直覺,不管是在函數内部還是函數被調用的地方,一眼就能清楚是否是位址。

       引用還可以作為函數的傳回值,但我不建議這麼用,我實在看不出這樣做有什麼好處,那就沒必要把事情搞得那麼複雜,是以這裡就不介紹了。

版權聲明

C語言技術網原創文章,轉載請說明文章的來源、作者和原文的連結。

來源:C語言技術網(www.freecplus.net)

作者:碼農有道

如果這篇文章對您有幫助,請點贊支援,或在您的部落格中轉發我的文章,謝謝!!!

如果文章有錯别字,或者内容有誤,或其他的建議或意見,請您留言指正,非常感謝!!!

繼續閱讀