天天看點

詳解c++指針的指針和指針的引用為什麼需要使用它們使用指針的指針指針的引用

展示一下使用指針的指針和指針的引用修改傳遞給方法的指針,以便更好的使用它。(這裡說的指針的指針不是一個二維數組)

當我們把一個指針做為參數傳一個方法時,其實是把指針的複本傳遞給了方法,也可以說傳遞指針是指針的值傳遞。

如果我們在方法内部修改指針會出現問題,在方法裡做修改隻是修改的指針的copy而不是指針本身,原來的指針還保留着原來

的值。我們用下邊的代碼說明一下問題:

看一下輸出結果

詳解c++指針的指針和指針的引用為什麼需要使用它們使用指針的指針指針的引用

輸出的是兩個2

展示一下使用指針的指針做為參數

詳解c++指針的指針和指針的引用為什麼需要使用它們使用指針的指針指針的引用

我們看一下 func(int **p)這個方法

p:  是一個指針的指針,在這裡我們不會去對它做修改,否則會丢失這個指針指向的指針位址

*p:  是被指向的指針,是一個位址。如果我們修改它,修改的是被指向的指針的内容。換句話說,我們修改的是main()方法裡 *pn指針

**p: 兩次解引用是指向main()方法裡*pn的内容

再看一下指針的引用代碼

詳解c++指針的指針和指針的引用為什麼需要使用它們使用指針的指針指針的引用

看一下func(int *&p)方法

p:  是指針的引用,main()方法裡的 *pn

*p:是main()方法裡的pn指向的内容。

繼續閱讀