C 學習筆記之引用

2021-08-22 16:19:41 字數 1139 閱讀 4187

引用的概念

引用的本質

引用的意義

思考點引用是c++中引入的乙個新概念,它是乙個已定義變數的別名。

int a = 0;

int &b = a;

引用在c++中的內部實現是通過常指標來實現的:

type& a   <=>   type* const a  但又不等價於常指標(區別間思考點1)

引用定義時必須被初始化,原因是引用的本質是乙個常指標,常量在定義時必須初始化

int a = 10;

int b = 20;

int &c = a;

c = b; //可以把b賦值給c, 相當於間接修改a的值

//下面這句是錯的

&c = b; //引用一旦初始化之後就不能再引用其它變數了

引用相對於指標來說具有更好的可讀性和實用性引用做函式引數間接修改變數的值

普通引用有自己的空間嗎?

引用是有自己的記憶體空間的,從使用的角度,引用會讓人誤會其只是乙個別名,沒有自己的儲存空間。這是c++為了實用性而做出的細節隱藏。

但有一點需要注意的是:

sizeof(指標)  的值永遠是 4

sizeof(引用) 的值是不一定的,根據所引用的物件型別而定

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

使用字面量對const引用初始化後,將生成乙個唯讀變數

const int b = 10;

printf("b:%d", &b);

//int &a1 = 19; 如果不加const編譯失敗

const int &a = 19;

printf("&a:%d \n", &a);

C 學習筆記之 引用

先宣告一下,這裡的內容大多是 c 程式設計思想 中的內容,我最近在學習c 覺得裡面的很多話不錯,另外例子也都自己實驗了一番,有些現象很有趣,希望與大家分享。引用 reference 就像能自動地被編譯器間接引用的常量型指標。常量型指標的含義就是常量修飾指標,即指的地方不變,但所指地方的內容可以改變。...

C 學習筆記之引用

型別名 引用名 某變數名 比如 int r n r引用了n,r的型別是int 某個變數的引用,等價於這個變數,相當於該變數的乙個別名。引用只能引用變數,不能引用常量和表示式。t 型別的引用或t型別的變數可以用來初始化const t 型別的引用。const t 型別的常變數和const t 型別的引用...

c 學習筆記之引用

引用是 c 的新增內容,在實際開發中會經常使用 c 用的引用就如同c語言的指標一樣重要,但它比指標更加方便和易用,有時候甚至是不可或缺的。同指標一樣,引用能夠減少資料的拷貝,提高資料的傳遞效率。引用 reference 是 c 相對於c語言的又乙個擴充。引用可以看做是資料的乙個別名,通過這個別名和原...