const int *p = &a

const int *p = &a

在课上面不是说const int*p 一定要赋给一个初始值 不然后面就没办法更改这个值,但是为什么课程后面用int b;

p = &b;然后成功修改了值呢

虽然常量指针指向的是一个常量, 但是int b并不是一个常量。

我有点弄晕了。。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

这个const修饰的只是指针指向的值为常量,不能修改,而不是针对指针。所以指向的a是不能修改的,b是可以修改的。

  • FANGYUAN_ 提问者 #1
    嗯嗯, 但是 b并不是一个常量不是吗? p = &b;之后,这个指针指向的是一个变量了不是吗? p就不是常量指针了对吗?
    2018-12-25 12:53:09
  • Tender10 回复 提问者 FANGYUAN_ #2
    是的这个是看指向的值是常量还是变量。
    2018-12-25 13:53:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       594    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师