c 學習筆記 引用

2021-05-23 15:14:54 字數 1168 閱讀 6045

引用:引入物件的乙個同義詞,不會產生新的物件!

例如:point p1(m,n);

point &p2=p1;//p2為p1的同義詞,改變p2的同時也會改變p1,但是編譯器並沒有給p2單獨分配記憶體,他和p1是共用一塊記憶體的!

引用和const一樣,必須馬上初始化~

例如如下類:

class point

public:

point(int m);//建構函式

private:

int x;

const int y;

int &z;

point::point(int m)

x=m;

y=m;//error

z=m;//error

對於類的成員中有引用或者const型別時,必須在初始化列表中進行初始化,而不能在函式體內賦值。

上述建構函式應該這樣初始化:

point::point(int m)

:x(m),y(m),z(m)

{}//ok

引用的應用:

1.傳遞可變引數

傳統的c中,函式在呼叫時引數是通過值來傳遞的,這就是說函式的引數不具備返回值的能力。在c++中,可以通過引用來將變化的引數值傳回。

例如:void max(int x,int y,int z)

z=x+y;

如果我們的函式宣告為void,但是又希望得到z的值,這時我們就可以用引用,這樣定義:

void max(int x,int y ,int &z)

z=x+y;

這樣在main()中可以這樣寫

int m;

max(3,10,m);

這樣z就是m的引用,因為他們共用一塊記憶體,因此z改變的時候m也會改變。

2.傳遞較大的物件時,可以使用引用來減少實參向形參傳遞時複製的麻煩。

3.引用返回值:

如果乙個函式返回了引用,那麼該函式的呼叫也可以被賦值。這裡有一函式,它擁有兩個引用引數並返回乙個雙精度數的引用:

double &max(double &d1,double &d2) 

max()函式返回乙個對雙精度數的引用,那麼我們就可以用max() 來對其中較大的雙精度數加1:

max(x,y)+=1.0;

C 學習筆記 引用

引用,reference 在本質上就是指標,從建立開始,就與目標繫結 指標定義 int a 123 int p a 稱作 p指向了變數a 引用定義 int a 123 int r a 引用的定義 稱作 r是變數a的引用 r引用了變數a 和指標是乙個意思 指標的使用 int a 123 int p a...

C 學習筆記 引用

引用是c語言中沒有,而在c 中又很重要的乙個概念,通過應用,可以得到變數本身,相對於得到變數的值而言,有更大的操作空間。變數的本質 變數名實質上是一段連續儲存空間的別名,是乙個標號 程式中通過變數來申請並命名記憶體空間 通過變數的名字可以使用儲存空間 引用是c 的概念,屬於c 編譯器對c的擴充套件i...

C 引用學習筆記

作用 給變數起別名 語法 資料型別 別名 原名 如 int a 10 int b a 其中a與b是等效的,兩者指向的位址空間是一樣的 主要有兩點 1.引用前必須初始化 2.引用在初始化後,不可以改變 原因在引用的實質中會講到 作用 函式傳參時 可以利用引用的技術讓形參修飾實參 優點 可以簡化指標實參...