C C++ 指針和引用區別

總結:

引用是別名,所以自身沒有空間,那麼必須與一個合法的存儲單元關聯,所以定義必須初始化,所以引用不能爲空,沒有null引用。

指針是類型,有空間,可以爲null,適用於動態分配內存。

本質區別就是引用別名指針類型,所以才表現出各自不同的特點。

 

區別:

參考:https://www.cnblogs.com/yuanqiangfei/p/11248160.html

(1)存儲空間:指針是實體,有內存空間;引用是別名,沒有空間。

(2)初始化:引用定義時必須初始化,指針不用。

(3)對象修改:指針指向可以改,引用指向不可以改變,引用賦值是修改被引用對象的值。

(4)空null:引用不能爲空,沒有null引用,引用必須與一塊合法的存儲單元關聯。但指針可以。

(5)sizeof:Sizeof(引用)計算的是它引用的對象的大小,而sizeof(指針)計算的是指針本身的大小。

(6)如果返回的是動態分配的內存或對象,必須使用指針,使用引用會產生內存泄漏。(???爲什麼)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章