指針與引用

轉(zhuǎn)載:https://blog.csdn.net/u013130743/article/details/80806179


精簡(jiǎn)版:

指針:變量找蜜,獨(dú)立腥例,可變,可空子姜,替身祟绊,無類型檢查;

引用:別名哥捕,依賴牧抽,不變,非空遥赚,本體扬舒,有類型檢查;

完整版:

  1. 概念

指針從本質(zhì)上講是一個(gè)變量凫佛,變量的值是另一個(gè)變量的地址讲坎,指針在邏輯上是獨(dú)立的孕惜,它可以被改變的,包括指針變量的值(所指向的地址)和指針變量的值對(duì)應(yīng)的內(nèi)存中的數(shù)據(jù)(所指向地址中所存放的數(shù)據(jù))晨炕。
引用從本質(zhì)上講是一個(gè)別名衫画,是另一個(gè)變量的同義詞,它在邏輯上不是獨(dú)立的瓮栗,它的存在具有依附性碧磅,所以引用必須在一開始就被初始化(先有這個(gè)變量,這個(gè)實(shí)物遵馆,這個(gè)實(shí)物才能有別名)鲸郊,而且其引用的對(duì)象在其整個(gè)生命周期中不能被改變,即自始至終只能依附于同一個(gè)變量(初始化的時(shí)候代表的是誰的別名货邓,就一直是誰的別名秆撮,不能變)。

  1. C++中的指針參數(shù)傳遞和引用參數(shù)傳遞

指針參數(shù)傳遞本質(zhì)上是值傳遞换况,它所傳遞的是一個(gè)地址值职辨。值傳遞過程中,被調(diào)函數(shù)的形式參數(shù)作為被調(diào)函數(shù)的局部變量處理戈二,會(huì)在棧中開辟內(nèi)存空間以存放由主調(diào)函數(shù)傳遞進(jìn)來的實(shí)參值舒裤,從而形成了實(shí)參的一個(gè)副本(替身)。值傳遞的特點(diǎn)是觉吭,被調(diào)函數(shù)對(duì)形式參數(shù)的任何操作都是作為局部變量進(jìn)行的腾供,不會(huì)影響主調(diào)函數(shù)的實(shí)參變量的值(形參指針變了,實(shí)參指針不會(huì)變)鲜滩。
引用參數(shù)傳遞過程中伴鳖,被調(diào)函數(shù)的形式參數(shù)也作為局部變量在棧中開辟了內(nèi)存空間,但是這時(shí)存放的是由主調(diào)函數(shù)放進(jìn)來的實(shí)參變量的地址徙硅。被調(diào)函數(shù)對(duì)形參(本體)的任何操作都被處理成間接尋址榜聂,即通過棧中存放的地址訪問主調(diào)函數(shù)中的實(shí)參變量(根據(jù)別名找到主調(diào)函數(shù)中的本體)。因此嗓蘑,被調(diào)函數(shù)對(duì)形參的任何操作都會(huì)影響主調(diào)函數(shù)中的實(shí)參變量须肆。

引用傳遞和指針傳遞是不同的,雖然他們都是在被調(diào)函數(shù)椬螅空間上的一個(gè)局部變量豌汇,但是任何對(duì)于引用參數(shù)的處理都會(huì)通過一個(gè)間接尋址的方式操作到主調(diào)函數(shù)中的相關(guān)變量。而對(duì)于指針傳遞的參數(shù)业簿,如果改變被調(diào)函數(shù)中的指針地址瘤礁,它將應(yīng)用不到主調(diào)函數(shù)的相關(guān)變量。如果想通過指針參數(shù)傳遞來改變主調(diào)函數(shù)中的相關(guān)變量(地址)梅尤,那就得使用指向指針的指針或者指針引用柜思。

從編譯的角度來講岩调,程序在編譯時(shí)分別將指針和引用添加到符號(hào)表上,符號(hào)表中記錄的是變量名及變量所對(duì)應(yīng)地址赡盘。指針變量在符號(hào)表上對(duì)應(yīng)的地址值為指針變量的地址值号枕,而引用在符號(hào)表上對(duì)應(yīng)的地址值為引用對(duì)象的地址值(與實(shí)參名字不同,地址相同)陨享。符號(hào)表生成之后就不會(huì)再改葱淳,因此指針可以改變其指向的對(duì)象(指針變量中的值可以改),而引用對(duì)象則不能修改抛姑。

  1. 總結(jié)

相同點(diǎn):
  都是地址的概念
不同點(diǎn):
  1)指針是一個(gè)實(shí)體(替身)赞厕;引用只是一個(gè)別名(本體的另一個(gè)名字)
  2)引用只能在定義時(shí)被初始化一次,之后不可改變定硝,即“從一而終”皿桑;指針可以修改,即“見異思遷”蔬啡;
  3)引用不能為空(有本體诲侮,才有別名);指針可以為空箱蟆;
  4)sizeof 引用沟绪,得到的是所指向變量的大小空猜;sizeof 指針绽慈,得到的是指針的大小抄肖;
  5)指針 ++久信,是指指針的地址自增;引用++是指所指變量自增漓摩;
  6)引用是類型安全的,引用過程會(huì)進(jìn)行類型檢查入客;指針不會(huì)進(jìn)行安全檢查管毙;


作者: ZH奶酪——張賀
Q Q: 1203456195
郵箱: cheesezh@qq.com


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市桌硫,隨后出現(xiàn)的幾起案子夭咬,更是在濱河造成了極大的恐慌,老刑警劉巖铆隘,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卓舵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡膀钠,警方通過查閱死者的電腦和手機(jī)掏湾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門裹虫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人融击,你說我怎么就攤上這事筑公。” “怎么了尊浪?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵匣屡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我拇涤,道長(zhǎng)捣作,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任鹅士,我火速辦了婚禮虾宇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘如绸。我一直安慰自己嘱朽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布怔接。 她就那樣靜靜地躺著搪泳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扼脐。 梳的紋絲不亂的頭發(fā)上岸军,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音瓦侮,去河邊找鬼艰赞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛肚吏,可吹牛的內(nèi)容都是我干的方妖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼罚攀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼党觅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起斋泄,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤杯瞻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后炫掐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魁莉,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旗唁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畦浓。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逆皮,靈堂內(nèi)的尸體忽然破棺而出宅粥,到底是詐尸還是另有隱情,我是刑警寧澤电谣,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布秽梅,位于F島的核電站,受9級(jí)特大地震影響剿牺,放射性物質(zhì)發(fā)生泄漏企垦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一晒来、第九天 我趴在偏房一處隱蔽的房頂上張望钞诡。 院中可真熱鬧,春花似錦湃崩、人聲如沸荧降。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朵诫。三九已至,卻和暖如春薄扁,著一層夾襖步出監(jiān)牢的瞬間剪返,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工邓梅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脱盲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓日缨,卻偏偏與公主長(zhǎng)得像钱反,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子殿遂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Q:指針是什么诈铛? A:指針本身不存儲(chǔ)數(shù)據(jù),存儲(chǔ)的是數(shù)據(jù)存放的地址 一個(gè)變量的地址稱為該變量的“指針”墨礁,存放該...
    涼拌姨媽好吃閱讀 1,047評(píng)論 0 2
  • 指針 指針是一個(gè)變量,只不過這個(gè)變量存儲(chǔ)的是一個(gè)地址耳峦,指向內(nèi)存的一個(gè)存儲(chǔ)單元恩静。 引用 引用跟原來的變量實(shí)質(zhì)上是同一...
    ninedreams閱讀 2,595評(píng)論 2 3
  • C語言是面向過程的,而C++是面向?qū)ο蟮? ...
    小辰帶你看世界閱讀 861評(píng)論 1 1
  • C++是在C語言的基礎(chǔ)上發(fā)展來的。C++除了有C語言的指針外驶乾,還增加一個(gè)新的概念——引用邑飒,初學(xué)者容易把引用和指針混...
    蕭瀟公舉閱讀 8,546評(píng)論 1 5
  • 第一章 11年夏初,在我們高中校外地下鐵级乐,我遇到了你疙咸。 瞬間的觸電,情竇初開风科。 齊劉海撒轮,小眼睛,小鼻子贼穆,小嘴巴题山,小...
    離張閱讀 141評(píng)論 0 1