常引用(const引用)

2021-08-14 11:22:27 字數 1013 閱讀 6134

普通引用

int a = 10;

int& b = a;

b可以修改a

常引用

用const修飾就是常引用,常引用初始化有兩種情況

1、 用變數 初始化 常引用

2 、用 字面量 初始化 常引用

const int& y2= 40;

//常引用的知識架構

void main01()

//2 > 用 字面量 初始化 常引用

system("pause");

}struct teacher

;void printfteacher(const teacher& my)//相當於void printfteacher(const teacher * const my) 指標變數 和指標指向的記憶體空間都不能被修改

void main()

結論

1)const & int e  相當於 const int * const e

void printfteacher(const teacher& my) 

void printfteacher(const teacher  * const my)

兩者等價,指標變數 和 指標指向的記憶體空間 都不能被修改

2)普通引用 相當於 int *const e1

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

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

c++中的const常量

可能分配儲存空間, 也可能不分配儲存空間

1、當const常量為全域性,並且需要在其它檔案中使用,會分配儲存空間

2、當使用&操作符,取const常量的位址,會分配儲存空間

3、當const int &a = 40; const修飾引用時,也會分配儲存空間

引用 const引用和非const引用

引用構造了物件的乙個同義詞,是c 物件的另乙個名字。在實際程式中,引用的主要作用是作函式的形參。引用是一種復合型別1,它通過在變數名前新增 來定義。在使用引用的情況下,每一種引用型別都關聯到某一其他型別。c 不能定義引用型別的引用,但是可以定義任何其他型別的引用。int a 100 int refa...

函式形參為什麼使用const引用 常引用

是為了引用傳遞,防止值傳遞的複製資料,const 是為了保護資料不被改動。const 防止傳值時拷貝建構函式的呼叫開銷 2 形參的物件為頂層 const 時,傳入的實參既可以是 const 值,又可以是非 const 值,若是底層 const 傳入的實參只能是 const 的值。頂層 const表示...

const引用與非const引用

const引用可讀不可改,與繫結物件是否為const無關,注意區分const引用與對const物件的引用 非const引用可讀可改,只可與非const物件繫結 const int ival 1024 const int refval ival ok both reference and object...