引用與指針有什么區別?


 

指針和引用都是地址的概念,指針指向一塊內存,它的內容是所指內存的地址;引用是某塊內存的別名
程序為指針變量分配內存區域,而不為引用分配內存區域。

指針使用時要在前加 * ,引用可以直接使用。

引用在定義時就被初始化,之后無法改變;指針可以發生改變。 即引用的對象不能改變,指針的對象可以改變。

沒有空引用,但有空指針。這使得使用引用的代碼效率比使用指針的更高。因為在使用引用之前不需要測試它的合法性。相反,指針則應該總是被測試,防止其為空。

對引用使用“sizeof”得到的是變量的大小,對指針使用“sizeof”得到的是變量的地址的大小。

理論上指針的級數沒有限制,但引用只有一級。即不存在引用的引用,但可以有指針的指針。
int **p //合法
int &&p //非法

++引用與++指針的效果不一樣。
例如就++操作而言,對引用的操作直接反應到所指向的對象,而不是改變指向;而對指針的操作,會使指針指向下一個對象,而不是改變所指對象的內容。

 

參考:

https://blog.csdn.net/xsydalao/article/details/93623647

https://blog.csdn.net/superwangxinrui/article/details/80565594

https://www.cnblogs.com/zhousong918/p/10424151.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM