引用和指針(待更新)

(一)引用

爲一個已經存在的對象起了一個別名,通過&來實現。

int val = 1024;
int &refVal = val;  //正確
int &refVal2;   //錯誤,引用必須初始化,並且不能被重新賦值

注意:
(1)引用不是對象,本身不佔內存,對引用求地址,就是對目標變量求地址。
(2)引用只能綁定在對象上,不能綁定在字面值或表達式的計算結果上(const和含有繼承關係的類除外),引用和目標變量的類型應該嚴格一致。
(3)不能建立數組的引用,也不能建立引用的引用。


(二)指針

指針內存放的是某個對象的地址

1、與引用的不同:
(1)指針本身是一個對象,允許對指針賦值和拷貝。
(2)在指針的生命週期內可以先後指向不同的對象。
(3)指針不需要再定義時賦值。
注意:引用不是對象,不能定義指向引用的指針。

2、空指針:nullptr(C++新標準)和NULL(導入cstdlib包)

3、void* 指針:void* 指針中可以存放任意類型的對象的地址。不能直接對void*指針所指的對象進行操作,因爲不知道對象是什麼類型。

發佈了52 篇原創文章 · 獲贊 10 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章