初識C++之指針與引用

1、What
a. 指針:
指針可以看做是一個特殊的變量,它是用來存放變量的地址值的。
b. 引用
引用的話,可以看做是給變量起的一個別名,而不是定義一個新變量,它與那個變量的本質是相同的,內容與地址都是一樣的。

2、Distinction
a. 引用使用時無需解引用(*),指針需要解引用;
b. 引用沒有 const,指針有 const;
c. 指針是一個實體,而引用僅是個別名;
d. 從內存分配上看:程序爲指針變量分配內存區域,而引用不需要分配內存區域,因爲指針是一個新的變量,而引用僅僅是一個別名而;
e. 引用在定義時必須初始化,指針沒有要求;
f. 一旦一個引用被初始化爲指向一個對象,就不能再指向其他對象,而指針可以在任何時候指向任何一個同類型對象。這兒可以看出指針是很花心的,而引用則是一心一意的,所以我們要多用引用;
g. 沒有NULL引用,但有NULL指針;
h. 在sizeof中含義不同:引用結果爲引用的變量的類型的大小,但指針始終是地址空間所佔字節個數(4個字節);
i. 引用自加改變變量本身的內容,指針自加改變了指針指向,跳過該指針指向的對象所佔的空間大小;
j. 有多級指針,但是沒有多級引用;
k. 引用比指針使用起來相對更安全。

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