當前位置:
首頁 >
【c++】5.函数传指针与传值特容易混淆的点
發(fā)布時間:2025/3/21
30
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【c++】5.函数传指针与传值特容易混淆的点
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
函數(shù)傳指針與傳值特容易混淆的點
這里只做一部分的解析,詳解請參考 指針參數(shù)傳遞動態(tài)內(nèi)存 https://blog.csdn.net/daaikuaichuan/article/details/77229599
參考 https://bbs.csdn.net/topics/240071177
傳指針的目的是改變指針指向單元的值,而不是改變指針本身(即指針表示的地址).
如果函數(shù)參數(shù)是指針類型,需要具體分析:
見后面的代碼中:
void swap1(int *p1, int *p2) 是傳值,只不過這個值是個指針(地址);
void swap2(int *p1, int *p2)是傳指針,在函數(shù)內(nèi)部是更改p1和p2指向的值,這也是我們最常用的方式。
如果函數(shù)內(nèi)部是改變指針的指向(地址),則相當于傳值,雖然在函數(shù)內(nèi)形參p1和p2指針指向改變了,但是調(diào)用了該函數(shù)之后,形參對應(yīng)的實參p1和p2的指向地址完全沒改變。
p1,p2 是通過值傳入函數(shù)的,只不過這個值是個指針(地址),可看作函數(shù)局部變量。
總結(jié)
以上是生活随笔為你收集整理的【c++】5.函数传指针与传值特容易混淆的点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【c++】11.重写、覆盖、using、
- 下一篇: 【c++】22. STL容器的底层实现详