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

本文介绍了C++中的常量引用和指向常量的指针,强调了它们对对象值的修改限制。常量引用不能改变引用对象的值,而指向常量的指针同样禁止修改所指对象。通过实例展示了如何通过普通引用和非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;//不行!

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

可以这样理解:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值