課程
/后端開發
/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++掃清通往面向對象的最后一道障礙,將所有知識點融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-09-14
你是可以通過指針來修改其所指的對象的。 所以如果允許p指向const int對象,就意味著你可以通過p來修改a,顯然這是不合理的。
故語法要求const對象只能被“指向const對象的指針”所指。
將p聲明為 const int *p; 就沒有問題了,這個p是指向const對象的。