电竞比分网-中国电竞赛事及体育赛事平台

分享

什么情況下使用指針的引用(指針)

 靜謐風(fēng)霜 2019-10-25

在函數(shù)調(diào)用時

用指針或者引用做參數(shù),表示把變量的地址傳遞給子函數(shù),但是子函數(shù)只能修改指針?biāo)缸兞康闹?,并不能修改指針的指向?/p>

如果想用修改指針的指向,就要用指針的指針,或者指針的引用。

大部分情況下,用指針和引用做參數(shù),只是想要修改指針?biāo)缸兞康闹?,并沒有想修改指針的指向。

但是如果指針?biāo)傅倪@塊內(nèi)存在調(diào)用子函數(shù)結(jié)束之后發(fā)生了改變,那就要用指針的引用或者指針的指針。

下面舉幾個典型的例子:

例子一:

鏈表做參數(shù)時,其實(shí)就是頭結(jié)點(diǎn)的指針,在遍歷,查找這種操作做子函數(shù)時,鏈表不會發(fā)生改變,那就用頭結(jié)點(diǎn)的指針做參數(shù)就可以了。

但是在增加,修改,刪除這種操作時,鏈表會發(fā)生改變,這就表示頭結(jié)點(diǎn)指針?biāo)傅倪@塊內(nèi)存會發(fā)生改變,也就是指針的指向可能會發(fā)生改變,這種情況下就要頭指針的引用。

在二叉樹和圖的子函數(shù)調(diào)用中是同樣的道理,如果子函數(shù)會修改二叉樹和圖,那就要用指針的引用。

那塊內(nèi)存在主函數(shù)已經(jīng)申請好了,但是在子函數(shù)中大小變了。

例子二:

在主函數(shù)中定義了一個指針,要將這個指針做參數(shù)傳給子函數(shù),在子函數(shù)中開辟兩兆內(nèi)存,這個時候一定要用指針的引用。

因?yàn)橹羔標(biāo)傅倪@塊內(nèi)存發(fā)生了改變,或者說指針的指向發(fā)生了改變。

主函數(shù)中只是定義了一個指針,并沒有真正開辟內(nèi)存,子函數(shù)中才真正開辟內(nèi)存,指針指向哪才明確下來。

如果你有時候不清楚該不該用變量的引用做參數(shù),那就記住一點(diǎn):

用指針的引用總是沒有問題的。因?yàn)閭鬟f變量的地址比傳遞變量本身總是改的快。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多