關于C++中引用和指針的區(qū)別詳解
之前我們介紹了什么是引用,錯過的小伙伴們可以參考這篇文章!
既然引用底層是用指針形式實現(xiàn)的,那么這篇文章就來為大家介紹一下引用和指針的區(qū)別:
int main() { int a = 10; int& ra = a; ra = 20; int* pa = &a; *pa = 20; return 0; }
相同點:
引用和指針在做參數(shù)及做返回值類型上幾乎效率相同,但遠遠高于傳值
不同點:
1. 引用在定義時必須初始化,指針沒有要求
2. 引用只能初始化引用一個實體,而指針可以在任何時候指向任何一個同類型實體
3. 沒有NULL引用,但有NULL指針
4. 在sizeof中含義不同:引用結果為引用類型的大小,指針始終是地址空間所占字節(jié)個數(shù)(32位:4字節(jié) 64位:8字節(jié))
5. 引用自加即引用的實體增加1,指針自加即指針向后偏移一個類型的大小
6. 有多級指針,但是沒有多級引用
7. 訪問實體方式不同,指針需要顯式解引用,引用編譯器自己處理
8. 引用比指針使用起來簡潔、安全
到此這篇關于關于C++中引用和指針的區(qū)別詳解的文章就介紹到這了,更多相關C++中引用和指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
c++中為什么可以通過指針或引用實現(xiàn)多態(tài)詳解
這篇文章主要給大家介紹了關于c++中為何可以通過指針或引用實現(xiàn)多態(tài),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04C語言實現(xiàn)手寫Map(數(shù)組+鏈表+紅黑樹)的示例代碼
這篇文章主要為大家詳細介紹了如何利用C語言實現(xiàn)手寫Map(數(shù)組+鏈表+紅黑樹),文中的示例代碼講解詳細,對我們學習有一定借鑒價值,需要的可以參考一下2022-09-09