引用 const引用和非const引用

2021-08-15 16:15:12 字數 862 閱讀 8104

引用構造了物件的乙個同義詞,是c++物件的另乙個名字。在實際程式中,引用的主要作用是作函式的形參。

引用是一種復合型別1,它通過在變數名前新增「&」來定義。在使用引用的情況下,每一種引用型別都關聯到某一其他型別。c++不能定義引用型別的引用,但是可以定義任何其他型別的引用。

int a = 100;

int &refa = a; // &refa引用a

int &refa = b; // error:引用物件必須初始化

int &refa = 10; //error:右值必須是物件

const是乙個限定符,被const限定的變數其值不會被改變。所以,const變數必須在定義時就被初始化。

const

int bufsize = 512;

如上定義了乙個const變數bufsize。編譯器將在編譯過程中把用到該變數的地方都替換成對應的值。也就是說,編譯器會找到**中所有用到bufsize的地方,然後用512替換。

const引用是指向const物件的引用。const引用必須被定義為const型別。

const

int a = 100;

const

int &refa = a; // correct:引用和被引用都是const型別

int &refa = a; // error:引用不是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...

C 中const引用和非const引用的使用注意

今天學習時突然有疑惑,c 有了指標為何還要設計引用呢?後來看到一篇部落格豁然開朗 為什麼 c 有指標了還要引用?總結一下 更加簡潔好看了 由於引用必須被初始化,並且之後也無法重新繫結其他物件,這樣就更安全了 為了操作符過載,比如部落格中那個過載 的例子 並且,在了解了這些之後,對引用的一些其他特性也...

const引用和普通引用

一 引用所繫結的型別和所引用的物件型別需嚴格匹配。除了兩個例外 1 普通引用必須繫結到物件,不能繫結到常量 int a 3 錯誤 2 const引用 1 初始化const引用允許用任意表示式,只要該表示式的結果能轉化為引用型別即可 2 允許乙個const引用繫結非常量物件,字面值,甚至是一般表示式 ...