引用:引入物件的乙個同義詞,不會產生新的物件!
例如: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.引用在初始化後,不可以改變 原因在引用的實質中會講到 作用 函式傳參時 可以利用引用的技術讓形參修飾實參 優點 可以簡化指標實參...