課程
/后端開發(fā)
/C++
/C++遠征之離港篇
int const a=3; int *p=&a;
這里的語法為什么是錯誤的?這里的a是不能修改值的,但是后一句中,只是使p指向了a所在地址,這個怎么就錯了呢,求問詳細解答。謝謝
2015-09-14
源自:C++遠征之離港篇 3-3
正在回答
你是可以通過指針來修改其所指的對象的。 所以如果允許p指向const int對象,就意味著你可以通過p來修改a,顯然這是不合理的。
故語法要求const對象只能被“指向const對象的指針”所指。
將p聲明為 const int *p; 就沒有問題了,這個p是指向const對象的。
Kecho 提問者
舉報
C++掃清通往面向?qū)ο蟮淖詈笠坏勒系K,將所有知識點融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-09-14
你是可以通過指針來修改其所指的對象的。 所以如果允許p指向const int對象,就意味著你可以通過p來修改a,顯然這是不合理的。
故語法要求const對象只能被“指向const對象的指針”所指。
將p聲明為 const int *p; 就沒有問題了,這個p是指向const對象的。