課程
/后端開發(fā)
/C++
/C++遠(yuǎn)征之離港篇
解析說指針指向const修飾的變量時,應(yīng)該用const int const *p=&a,但是const int *p和int const *p不是一個意思嗎?不太懂解析
2017-08-20
源自:C++遠(yuǎn)征之離港篇 3-3
正在回答
但是視頻上說 const int *p和int const *p沒有區(qū)別啊,區(qū)別指針常量和常指針不是區(qū)別*在const左邊還是右邊嗎?
謝邀。
首先要明確const修飾變量的兩種概念.
其一就是指向常量的指針,const int *p,顧名思義,指向常量的指針常量的值不能被修改。
其二就是常指針 ? ? ? ? ? ? ? ,int const? *p ,這里的常指針修飾的時p這個指針變量的地址 ,也就是說p的地址不能在被修改
還有一種綜合案例也就是指向常量的常指針const int const *p ,歸根結(jié)底,這里的p仍然是一個指針變量,這里把整型變量a的地址賦值給指針變量p,是沒有毛病的。
毛病出在哪??int?const?a;?在這?通過二級指針的思想,類比上面兩種概念就可以知道,現(xiàn)在我們不能對a的地址進(jìn)行操作,所以會報(bào)錯。
如果想實(shí)現(xiàn)相應(yīng)的功能應(yīng)該怎么做?const int const *p=&a,對正如答案所給即可
寅月 提問者
舉報(bào)
C++掃清通往面向?qū)ο蟮淖詈笠坏勒系K,將所有知識點(diǎn)融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-08-21
但是視頻上說 const int *p和int const *p沒有區(qū)別啊,區(qū)別指針常量和常指針不是區(qū)別*在const左邊還是右邊嗎?
2017-08-20
謝邀。
首先要明確const修飾變量的兩種概念.
其一就是指向常量的指針,const int *p,顧名思義,指向常量的指針常量的值不能被修改。
其二就是常指針 ? ? ? ? ? ? ? ,int const? *p ,這里的常指針修飾的時p這個指針變量的地址 ,也就是說p的地址不能在被修改
還有一種綜合案例也就是指向常量的常指針const int const *p ,歸根結(jié)底,這里的p仍然是一個指針變量,這里把整型變量a的地址賦值給指針變量p,是沒有毛病的。
毛病出在哪??int?const?a;?在這?通過二級指針的思想,類比上面兩種概念就可以知道,現(xiàn)在我們不能對a的地址進(jìn)行操作,所以會報(bào)錯。
如果想實(shí)現(xiàn)相應(yīng)的功能應(yīng)該怎么做?const int const *p=&a,對正如答案所給即可