引用和指針

使用平臺:VS2013


引用概念:
引用不是新定義一個變量,而是給已存在的變量去了一個別名,編譯器不會爲引用變量開闢內存空間,它和引用變量共用同一塊內存空間。


引用特性:

  1. 引用在定義時必須初始化;
  2. 一個變量可以有多個引用;
  3. 引用一旦綁定了一個實體,就不能再改變爲其他變量的引用。

注意:

  1. 不要返回棧內存的作用域;
  2. 引用時類型必須是同一種類型;
  3. 臨時對象具有常性。

常引用:如果用變量初始化const型的引用,可以變量初始化,也可以用常量表達式來初始化。
1. const對象的引用必須是const的,將普通引用綁定到const對象是不合法的;
2. const引用可使用相關類型的對象初始化。常量、非同類型的變量或表達式,加了const,類型不一致,可以通過表達式賦值。

常引用

解釋:

變量a,b的類型是不相同的,將b變爲a的引用的過程中,會產生一箇中間變量,是將b變爲a的臨時變量的引用,臨時變量具有常性,故加上const,編譯通過。


引用和指針的區別:

相同點:
引用和指針的實現方式在底層是相同的,都是按照指針的方式來實現的,只是概念上引用不開闢空間,底層實現和指針相同。

不同點:
1. 引用定義是必須初始化,指針可以不用;
2. 引用一旦定義就不可以改變, 指針可以;
3. 自加,自減含義不同;
4. sizeof()含義不同;
5. 可以有多級指針,但是沒有多級引用;
6. 引用比指針使用更加安全。


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