如何理解指向指针的指针?
問(wèn)題:如何理解指向指針的指針?
我在一篇教程中看到下面這段,它描述指向指針的指針是如何運(yùn)作的。
引用文章相關(guān)段落如下:
| 1 2 | int i = 5, j = 6, k = 7; int *ip1 = &i, *ip2 = &j; |
現(xiàn)在我們可以這么寫:
| 1 | int **ipp = &ip1; |
那么現(xiàn)在指針 ipp 指向了 ip1,ip1 指向了 i。*ipp 就是 ip1,**ipp 就是 i,或者說(shuō)是 5。我們可以用我們熟悉的盒子箭頭圖來(lái)描述,像這樣:
如果我們接著這么寫:
| 1 | *ipp = ip2; |
我們就改變了 ipp 指向的那個(gè)指針(也就是 ip1),現(xiàn)在它指向 ip2 所指的地方。也就是說(shuō)(ip1)現(xiàn)在它指向了 j:
我的疑問(wèn)是:為什么在第二幅圖里,ipp 還是指向 ip1 而不是 ip2?
最佳答案:
讓我們暫時(shí)忘掉那些關(guān)于指針的各種類比。指針實(shí)際上存放的是內(nèi)存的地址。
& 符號(hào)的意思是取地址,也就是返回一個(gè)對(duì)象在內(nèi)存中的地址。
* 符號(hào)的意思是取得一個(gè)指針?biāo)赶虻膶?duì)象。 也就是如果一個(gè)指針保存著一個(gè)內(nèi)存地址,那么它就返回在那個(gè)地址的對(duì)象。
所以當(dāng)你這么寫時(shí) *ipp = ip2,實(shí)際上是把 ipp 存的地址所對(duì)應(yīng)的對(duì)象,也就是 ip1 取到,然后把 ip2 存的值賦值給 ip1,也就是 j 的地址。
簡(jiǎn)單點(diǎn)就是:
&:取址。
* :取值。
總結(jié)
以上是生活随笔為你收集整理的如何理解指向指针的指针?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《三国志战略版》全阵法战法攻略
- 下一篇: 最新研究显示人类智力逐渐下降且变得更愚蠢