引用的用法

2021-07-01 20:47:34 字數 1139 閱讀 7466

一.引用宣告

我們知道c中的& 符號表示取位址,而在c++中&是表示引用。引用也就是為乙個變數起別名,當我們對該別名操作,與直接對該變數進行操作,效果是一樣的。

宣告:型別識別符號 &引用名 = 目標變數名

例如:int a = 3; int &ra = a;//定義引用ra,

ra = 4; //改變ra的值,此時a 也變成4

《說明》:

(1) &不是取位址符 而是起標識作用

(2)型別識別符號是指目標變數的型別

(3)宣告引用時候 必須同時進行初始化

(4)宣告完畢後 相當於這個目標變數名有兩個名字,且不能將這個引用名當做其他目標變數的別名

(5)引用,不是一種資料型別,不佔儲存空間。對其求位址就是對目標變數求位址。&ra = &a;

應用場景

swap(int&a,int&b)

main()

由上面內容可知,

傳引用時候,由於傳入的是實參,被調函式中對引用的操作,其實是直接對實參的操作。形參不需要新開闢儲存空間,形參是實參的引用。

值傳遞時候,當發生函式呼叫時,需要給形參分配儲存空間,並將實參內容拷貝到形參內,被調函式對形參進行操作。

2. 常引用

宣告:const 型別識別符號 &引用名 = 目標變數名

這種方式的引用,不能通過引用來修改變數的值。從而提高**健壯性等。

例如 3. 引用作為返回值

型別識別符號 & 函式名(形參列表)

用引用返回乙個函式值的最大好處是不產生被返回的副本。

float temp;//全域性變數 temp;

float func(float r);//宣告函式func

float &func2(float r);//宣告函式func2

float func(float r)

float &func2(float r)

void main()

4 引用與多型

基類引用 可以指向派生類,且基類只能訪問派生類從基類繼承下來的成員。

若基類中含有虛函式,這樣就可以通過基類引用實現多型。

參考:

C C 引用( )的用法

補充在開頭 在boost中看到,就直接貼 了,在c 中使用指向陣列的引用,compiler can deduce template arguments 在函式的宣告中用陣列的引用定義,就不怕陣列退化了。想要定義乙個陣列引用型別,方法如下 typedef 型別明 陣列引用型別明 n int rn3 3...

指標引用的用法

指標引用就是乙個指標的引用,看下面例1 int a 10 int b 20 void swap int lhs,int rhs swap a,b 上面的程式可以成功交換兩個int值,但是如果形參傳的是int而非其引用的話則不會交換2個int值,因為形參非引用的情況下,編譯器會複製a,b然後把a,b的...

C C 引用的用法

一.引用的基本用法 引用型別 其本質上是指標,在學習時可以和指標相對照。指標型別 int double object 引用型別 int double object 指標的使用 int a 123 int p a p 999 引用的使用 int a 123 int r a r 999 對r的操作就是對...