關(guān)于C++中引用和指針的區(qū)別詳解
之前我們介紹了什么是引用,錯(cuò)過的小伙伴們可以參考這篇文章!
既然引用底層是用指針形式實(shí)現(xiàn)的,那么這篇文章就來為大家介紹一下引用和指針的區(qū)別:
int main() { int a = 10; int& ra = a; ra = 20; int* pa = &a; *pa = 20; return 0; }
相同點(diǎn):
引用和指針在做參數(shù)及做返回值類型上幾乎效率相同,但遠(yuǎn)遠(yuǎn)高于傳值
不同點(diǎn):
1. 引用在定義時(shí)必須初始化,指針沒有要求
2. 引用只能初始化引用一個(gè)實(shí)體,而指針可以在任何時(shí)候指向任何一個(gè)同類型實(shí)體
3. 沒有NULL引用,但有NULL指針
4. 在sizeof中含義不同:引用結(jié)果為引用類型的大小,指針始終是地址空間所占字節(jié)個(gè)數(shù)(32位:4字節(jié) 64位:8字節(jié))
5. 引用自加即引用的實(shí)體增加1,指針自加即指針向后偏移一個(gè)類型的大小
6. 有多級(jí)指針,但是沒有多級(jí)引用
7. 訪問實(shí)體方式不同,指針需要顯式解引用,引用編譯器自己處理
8. 引用比指針使用起來簡潔、安全
到此這篇關(guān)于關(guān)于C++中引用和指針的區(qū)別詳解的文章就介紹到這了,更多相關(guān)C++中引用和指針內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c++中為什么可以通過指針或引用實(shí)現(xiàn)多態(tài)詳解
這篇文章主要給大家介紹了關(guān)于c++中為何可以通過指針或引用實(shí)現(xiàn)多態(tài),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04C語言實(shí)現(xiàn)簡單學(xué)生成績管理系統(tǒng)項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單學(xué)生成績管理系統(tǒng)項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07C語言簡明講解三目運(yùn)算符和逗號(hào)表達(dá)式的使用
三目運(yùn)算符,又稱條件運(yùn)算符,它是唯一有3個(gè)操作數(shù)的運(yùn)算符,有時(shí)又稱為三元運(yùn)算符。三目運(yùn)算符的結(jié)合性是右結(jié)合的;逗號(hào)表達(dá)式,是c語言中的逗號(hào)運(yùn)算符,優(yōu)先級(jí)別最低,它將兩個(gè)及其以上的式子聯(lián)接起來,從左往右逐個(gè)計(jì)算表達(dá)式,整個(gè)表達(dá)式的值為最后一個(gè)表達(dá)式的值2022-04-04C++模擬實(shí)現(xiàn)stack和Queue的操作示例
這篇文章主要介紹了C++模擬實(shí)現(xiàn)stack和Queue的操作示例,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-06-06C++小知識(shí):C/C++中不要按值傳遞數(shù)組
今天小編就為大家分享一篇關(guān)于C++小知識(shí):C/C++中不要按值傳遞數(shù)組,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01C語言實(shí)現(xiàn)手寫Map(數(shù)組+鏈表+紅黑樹)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)手寫Map(數(shù)組+鏈表+紅黑樹),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定借鑒價(jià)值,需要的可以參考一下2022-09-09