常量引用或指向常量的指针,其所指对象可以是非const对象(C++)

常量引用:

常量引用即为对const的引用,其仅对引用可参与的操作做出了限定,但对于引用的对象是否为const常量并未做限定。若引用对象是const常量,那么无论通过何种方式都不允许改变对象的值;若引用对象是非常量,则允许通过其他途径改变其值。如:

int i=47;
int &r1=i;
const int &r2=i;

此时不允许对r2进行改变其值的操作,因为r2位常量引用,但可以通过改变r1或直接改变i来达到改变值的目的。

i=0;//行!
r1=0;//行!
r2=0;//不行!

——————————————————————————————————————————————————

指向常量的指针:

指向常量的指针同理

int i=47;
int *p1=&i;
const int *p2=&i;

可以通过改变*p1或i来改变值,但p2不允许这么做。

i=0;//行!
*p1=0;//行!
*p2=0;//不行!

——————————————————————————————————————————————————

可以这样理解:

所谓指向常量的指针或引用,不过是指针或引用“自以为是”罢了,它们觉得自己指向了常量,所以自觉地不去改变所指对象的值。对象的值到底能不能修改只取决于其本身。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值