C 學習筆記 引用

2021-08-11 02:59:24 字數 1003 閱讀 1174

引用,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;

*p = 999;

引用型別

int a = 123;

int& r = a;

//引用的定義

r = 999;

//隊r的操作,就是對a的操作

引用可以看作是目標物件的乙個別名,對引用的操作其實就是對目標物件的操作。r的位址與a的位址相同

注意事項:

1)引用必須在定義的時候初始化,也就是建立就要與目標物件繫結。

以下**有語法錯誤:

int a = 123;

int& r; //語法錯!必須初始化!

2)引用在定義時就與目標物件繫結,無法解綁

引用的更多用法

(1)引用作為函式的引數

和指標類似,引用也可以作為函式的引數,功能相同。「傳引用」和「傳位址」本質相同。

所以,引數的傳遞有兩種方式:

1>傳值(效率低)

2>傳位址或傳引用(效率高)

(2)引用作為函式的返回值

和指標一樣,引用也可以作為函式返回值

例:int number = 0;

//全域性變數

int& test()

注意:普通函式的返回值都只是右值,只有返回引用時才能當做左值來用。

和指標一樣,引用也有安全性問題。

主要是檢查引用的目標物件是否有效

比如,引用的目標物件是乙個區域性變數,那麼,在函式退出後,目標物件失效,所以引用也就不能用了。

例:int& test()

c 學習筆記 引用

引用 引入物件的乙個同義詞,不會產生新的物件!例如 point p1 m,n point p2 p1 p2為p1的同義詞,改變p2的同時也會改變p1,但是編譯器並沒有給p2單獨分配記憶體,他和p1是共用一塊記憶體的!引用和const一樣,必須馬上初始化 例如如下類 class point publi...

C 學習筆記 引用

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

C 引用學習筆記

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