天天看點

指針和引用的相同點和不同點

1.相同點

都是複合類型,都是位址的概念;

指針指向一塊記憶體,它的内容是所指記憶體的位址;

引用是某塊記憶體的别名。

2.不同點

2.1 初始化

指針本身是一個對象,允許對指針進行指派和拷貝,指針無須在定義時賦初值;

引用本身并不是一個對象,定義引用時,程式把引用和它的初始值綁定在一起,而不是将初始值拷貝給引用。一旦初始化完成,引用就無法重新綁定到另外一個對象,是以引用必須初始化,且初始化必須為一個對象。

2.2 值是否能為空

指針的值可以為空,但是引用的值不能為NULL,并且引用在定義的時候必須初始化;

2.3 值是否可以改變

指針的值在初始化後可以改變,即指向其它的存儲單元,而引用在進行初始化後就不會再改變了,從一而終。

2.4 sizeof()後的大小

”sizeof引用”得到的是所指向的變量(對象)的大小,而”sizeof指針”得到的是指針本身的大小;

c++

繼續閱讀