關於const引用 常量指標 指標常量的一些知識

2021-07-03 23:40:12 字數 945 閱讀 8178

應該將不需要修改的引用形參定義為const引用。普通的非const引用形參在使用時不太靈活。這樣的形參既不能用const物件初始化,也不能用字面值或者產生右值的表示式實參初始化,如下所示:

int incr(int &val)

int main()

理解返回引用至關重要的是:千萬不能返回區域性變數的引用。當然也千萬不能返回指向區域性變數的指標。例如:

const string &manip(const string&s)

引用和用來初始化引用的變數指向的是同一塊記憶體,因此通過引用或者變數可以改變同一塊記憶體中的內容。引用只是乙個別名,是乙個變數或物件的替換名字。引用的位址沒有任何意義,引用的位址就是它所引用的變數的位址。

指標是位址,指標變數要儲存位址值,因此要占用儲存空間,我們可以隨時修改指標變數所儲存的位址值,從而指向其他的記憶體。

定義引用時沒有初始化時錯誤的,引用一經初始化就始終指向同一特定物件(這就是為什麼引用必須在定義的時候初始化的原因)

關於指標常量和常量指標的區別

int a =3;

int b = 1;

int c = 2;

int const *p1 = &b;//const 在前,定義為常量指標

int *const p2 = &c;//*在前,定義為指標常量

常量指標p1:指向的位址可以變,但內容不可以重新賦值,內容的改變只能通過修改位址指向後變換。   

p1 = &a是正確的,但 *p1 = a是錯誤的。

指標常量p2:指向的位址不可以重新賦值,但內容可以改變,必須初始化,位址跟隨一生。

p2= &a是錯誤的,而*p2 = a 是正確的。

引用,指標,常量引用,常量指標,指標常量的區別

1.指標 指標代表乙個變數的位址 例如 int a 2,b 1,pi a pi b 2.引用 引用即針對乙個變數的別名,引用必須被初始化,引用作為引數 形參 時,不會像指標一樣使用儲存單元,更不會像值傳遞一樣建立該引數的副本,提高空間 時間效率。例如 int a 2,b a 3.常量引用 格式為 c...

關於常量指標的引用

int main const int const p n 既然有指向指標的引用,就不難想到指向常量指標的引用。於是就有如下嘗試 const int r p 結果報錯如下 將 const int 型別的引用繫結到 const int const 型別的初始值設定項時,限定符被丟棄 也就是說由於頂層co...

指標和引用,const 指標和const 引用

指標和引用是在使用中經常弄混淆的兩個概念。引用 reference 為物件起了另外乙個名字,用符號 表示。name,例如 int i 1024 int ref i 一般在初始化變數時,初始值會被拷貝到新建立的物件中,然而定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引...