const 與指針共同使用
在聲明指針變量時,實際是申明了兩個變量,一個是指針本身,即指針指向的地址,另一個是指針?biāo)赶虻膬?nèi)容。
因此,在使用 const 限定指針使用權(quán)限時,const 放置的位置不同,會有如下幾種情況:
位于符號 * 的左側(cè),指針本身可以修改,指針?biāo)赶虻膬?nèi)容無法直接修改。指針?biāo)赶虻膬?nèi)容可以通過修改指針本身,及修改指針?biāo)赶虻牡刂穪磉M行修改。


從運行結(jié)果我們可以看到,指針本身指向的地址發(fā)生了變化;實際上是從 oneInt 的地址,變更為了 otherInt 的地址;因此指針?biāo)傅膬?nèi)容也一起發(fā)生了變化。
除了修改指針本身,還可以通過修改原始引用變量的值來對指針?biāo)竷?nèi)容的值進行修改,我認為是因為兩者的值存儲在內(nèi)存中的同一地址塊。


從運行結(jié)果可以看到,同一塊地址中,指針指向的內(nèi)容發(fā)生了改變,說明可以通過改變原始引用變量的值,來修改指針指向的內(nèi)容
位于符號 * 的右側(cè),指針本身無法修改


從第二幅圖的運行結(jié)果我們可以看到,指針本身指向的地址沒有發(fā)生變化,指針?biāo)傅膬?nèi)容發(fā)生了變化;因此當(dāng) const 在符號 * 右側(cè)時,限定了指針的地址不能修改,申明了一個只能修改指針指向內(nèi)容的指針。
位于符號 * 左右兩邊,表示指針指向的內(nèi)容和指針本身都是常量,都無法直接修改。但是如果改變了指針原始引用變量的值,指針指向內(nèi)容的值也會改變,我認為可能是因為兩者的值存儲在內(nèi)存中的同一個地址塊


從第二幅圖的運行結(jié)果可以看到,指針本身指向的地址沒有發(fā)生變化,指針?biāo)傅膬?nèi)容發(fā)生了變化;通過改變原始應(yīng)用變量的值,做到了修改指針指向內(nèi)容值的效果