引用不是定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名。
定義的格式是:
型別&引用變數名 = 已定義過得變數名;
引用的特點:
1:乙個變數可以取多個別名
2:引用必須初始化
3:引用只能在初始化的時候引用一次,不能改變為再引用其他的變數。
#include
using
namespace
std;
void testreferencel1()
void testreferencel2()
int main()
引用作為引數
1【值傳遞】如果形參為非引用傳值方式,則生成區域性臨時變數接收實參的值
#include using namespace std;
void swap(int
left,int
right)
2【引用傳遞】如果形參為引用型別,則形參是實參的別名
void swap(int &left,int &right)
void testreference()
傳值做返回值,傳引用作為返回值
int &add(int d1,int d2)
//int add(int d1,int d2)
void()
{ int a = 3,b = 4;
int c = add(a,b);
cout<
我們通過彙編看函式棧幀的呼叫
通過彙編看傳值返回和傳引用返回
結論 1:不要返回乙個臨時變數的引用
2:如果返回物件出了當前函式的作用域依舊存在,則最好使用引用返回,因為這樣更高效。
引用和指標的區別和聯絡
1:引用只能在定義時初始化一次,之後不能改變指向其他變數,指標變數的值可以改變
2:引用必須指向有效的變數,指標可以為空。
3:sizeof指標物件和引用物件的意義不一樣,sizeof引用得到的是所指向變數的大小,而sizeof指標是物件位址的大小。
4:指標和引用自增(++)自減(–)意義不一樣。
5:相對而言,引用比指標安全
需要注意的是,指標比引用靈活,但是也更危險,使用指標時一定要檢查指標是否為空,指標所指的位址釋放後最好置為零,否則可能存在野指標問題。
C 集錦二 引用和指標
1.什麼是 引用 宣告和使用 引用 需要注意哪些問題?引用就是某個目標變數的 別名 對引用的操作與對變數的操作效果完全相同。宣告乙個引用需要對其進行初始化,這不是新定義了乙個變數,它只是表示該引用名是目標變數名的乙個別名,它本身不是一種資料型別,因此引用不佔儲存單元。2.使用 引用 作為函式引數有哪...
C 21 引用和指標
一般說到誰和誰怎麼樣,要麼說兩者的相似點,要麼兩者的區別,這裡我們也要說二者的區別和聯絡,同時,也不僅僅是區別和聯絡這麼簡單,因為你可能會發現在變數賦值,函式傳參這兩點還是有很多值得品一品的。最直觀的賦值方面的區別 首先我們先說二者的區別和聯絡。int a 1 int p a int a 1 int...
C 學習筆記(二)引用與指標
一.引用和指標的異同 1.指標在定義時,可以不初始化,引用在定義時必須初始化 2.指標變數指向的位址可以根據需要動態修改,引用只要和某個變數繫結後就不能改變。3.指標本身需要占用4個位元組存放空間,而引用本身不要不用分配記憶體空間。4.使用sizeof求指標變數的大小總是4個位元組,表示位址所佔的空...