C 的引用分析

2021-07-25 03:30:07 字數 787 閱讀 9063

引用的意義:

引用作為變數名而存在,因此在一些場合可以代替指標

引用相對於指標來說具有更好的的可讀性和實用性

const的引用

--在c++中可以宣告const引用

--const type &name =var;

--const 引用讓變數擁有唯讀屬性

int  a = 4;

const int& b = a;

int * p = (int *) &b;

b = 5; //錯誤,唯讀屬性不允許賦值

*p = 5;  //ok

當使用常量對const 引用進行初始化時,c++編譯器會為常量分配空間,並將引用名作為這段空間的別名

const int& b = 1;//ok

int *p =  (int*) &b;

b = 5;  //錯誤

*p = 5; //ok

結論:使用常量對const引用初始化後將生成乙個唯讀變數!!!

引用在c++中的內部實現是乙個常量指標

type&name; 《——》 type * const name;

注意:1.c++編譯器在編譯過程中使用常量指標作為引用的內部實現,因此引用所佔的空間大小與指標相同。

1.從使用的角度,引用只是乙個別名,c++為了實用性而隱藏了引用的儲存空間這一細節。

引用作為變數別名而存在旨在代替指標

const 引用可以使得變數具有唯讀屬性

引用在編譯器內部使用常量指標實現

引用的最終本質為指標

引用可以盡可能發避開記憶體錯誤

C 引用的本質分析

事物的難度遠遠低於對事物的恐懼!下邊來看看乙個老生常談的交換函式 include using namespace std 引用方式 void swap1 int a,int b 注意 函式引數中的引用不需要初始化 指標方式 void swap2 int a,int b int main int ar...

C 中引用的分析

引用詳解 引用 引用就是給變數取別名,編譯器不會為引用變數開闢記憶體空間,它和它引用的變數共用同一塊記憶體。例如 高中同學給我起的外號 疙瘩。疙瘩是我,我也是我 型別 引用變數名 物件命 引用實體 void test 1.引用在定義時必須初始化 int r 編譯時會出錯 2.乙個變數可以有多個引用 ...

C 中引用的本質分析

引用是c 中心增加的內容,在c語言是沒有引用這一種用法的。那什麼是引用呢?大家都知道,我們定義變數的時候,其實是將變數名和記憶體空間關聯起來,變數名就是一段記憶體空間的別名。當我們使用引用的時候,例如int a b 其實就相當於a是b的別名,也就是說a和b都是指向同一段儲存空間的。那這麼做有什麼意義...