1.引用的概念及用法
引用:引用不是定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名。
例如:
int & b =a;
b是a的引用,即b是a的別名。
引用的特點:
a.乙個變數可取多個別名
b.引用必須初始化(int &b;不知道b是誰的別名)
c.引用只能在初始化的時候引用一次,不能改變為再引用其他的變數(例如,b是a的別名就只能是a的別名,不能在成為其他變數的別名)
引用的用法:
void test()
非const引用不能與const物件繫結,因為常量a的值不可改變,但卻可以通過非const引用來改變常量a的值,這樣做是錯誤的,如下:
void test()
這裡採用引用傳遞,如果形參為引用型別,則形參是實參的別名。
傳引用的效率比傳值效率高.
注意,當不希望函式改變引數的值時,盡量使用常引用傳參。
void data(const
int& x);
3.引用做返回值
首先,需要了解什麼時候用傳值返回,什麼時候用傳引用返回?
當函式返回時,出了作用域值還在,用傳引用返回,來提高效率;出了作用域值不在,採用傳值返回。
傳引用:將返回值的別名返回;
傳值:給返回值拷貝乙份返回;
int& add(int d1,int d2)
4.指標和引用的區別和聯絡
a.引用只能在初始化時一次,之後不能改變指向其他變數(從一而終);
指標變數的值可變;
b.引用必須指向有效的變數,指標可以為空;
c.sizeof指標物件和引用物件的意義不一樣。sizeof引用得到的是所指向的變數的大小,而sizeof指標是物件位址的大小。
d.指標和引用自增(++)自減(–)意義不一樣。
e.相對而言,引用比指標更安全。
總結:
指標比引用更靈活,但也更危險。使用指標時一定要注意檢查指標是否為空。指標所指的位址釋放以後最好置0,否則可能存在野指標問題。
c 引用 指標
1.引用的作用 給變數起乙個別名,是c 對c的擴充。原名和別名有相同的位址,根本上就是同乙個東西,只是名字不一樣。c 的引用機制主要是為了用作函式引數,增強函式傳遞資料的能力,比如swap函式,引用就是為了直接修改實參。2.宣告方式 int a int b a 緊跟在資料型別後,即為引用宣告符,其他...
c 引用 指標。
一 什麼是引用 reference 已經存在的物件的另外乙個名字。引用有什麼特別的?1.引用在定義時,以 開頭。2.引用不是物件,只能繫結在物件上。所以必須在初始化的時候,指定引用繫結的物件。而且引用繫結是不可以改變的。int val 0 int refval val 不允許這樣初始化int ref...
C 中的指標 引用 指標引用
在c 指標的用處很大,可以快讀的訪問位址空間,而且本身不佔太大記憶體。指標操作在引數傳遞的時候非常方便。既可以作為傳入引數,又可以作為返回值。但是可不可作為函式的傳出引數呢?下面通過乙個例子來說明。教室裡面包含多個老師,每個老師管理多個學生 學生類 pragma once include class...