最近在看C++PRIMER这本书,对于书上所说的这个顶层和底层CONST的问题小弟不是很明白
所以特来这里想请教各位一下,
CONST INT CI=42;
CONST INT *P2=&CI;//允许改变P2的值,这是一个底层CONST
这句话不是很明白, 为什么能改变P2的值呢?P2不是一个指针常量吗?自身的值是不能
改变的呀,P2指向的对象CI的值也是不能改变的呀,所以等号前面是顶层CONST,后面
是底层CONST我 是这么理解的也不知道对不对,请高手指教 一下,先谢谢了。
CONST INT *CONST P3=P2//靠右的是顶层,靠左的是底层
请问下这句话也不是很明白,靠左的不是一个指针常量的声明吗?也就是指针本身 是一个
常量,也就是顶层呗?为什么它上面说是靠右的是顶层呢?
请教一个顶层CONST和底层CONST的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Niferry 2015-11-02 14:16关注
和const的位置有关系,CONST INT CI=42;
CONST INT *P2=&CI;
意思就是对于指针P2来说,CI的值是无法改变的,但是P2本身的值,也就是它指向的那个地址,这是可以改变的。
换句话说你不能通过*P2=20;这种语句改变CI的值。而且CI本身就是一个常量,就算CI不是CONST类型,通过P2一样不能改变。
你如果这样定义CONST INT CONST *P2=&CI;那么P2指向的地址就永远是CI,这个地址也不能变了解决 无用评论 打赏 举报
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题