C++中常指针,指向常量的指针和指向常量的常指针的区别

在C++中我们来定义常量通常用const修饰符,并且const可以和指针一起来使用。

例如:const char* p="abcad"

           char* const p="abcad"

          const char* const p ="abcad"

看上去很是相似,在平常的使用过程中我们可能一不小心就会搞错,我思考了一下应该如何分辨。方法如下:

我们只需要记住指向常量的指针,它的值无法修改,但它指向的地址是可以改变的,即const char* p

const char* p="abcad";//这种形式为指向常量的指针
p[2]="o";//这样是错误的,值无法修改
p="eee";//这种操作就是正确的,赋予了p一个新的地址

对于常指针,其和指向常量的指针相反,它的值是可以修改的,但它指向的地址无法修改,即char* const p

char* const p="abcad";//常指针
p[2]="o";//可以改变p的值
p="eee";//不可以改变p所指向的地址

指向常量的常指针结合了上面两种的特点,无法修改值和所指向的地址,即const char* const p

const char* const p="abcad";//指向常量的常指针
p[2]="o";//达咩
p="eee";//达咩

指向常量的指针:既然无法改变,那就彻底分离吧。

常指针:既然无法分离,那就想法改变吧。

指向常量的常指针:既然无法分离,也无法改变,那就这样纠缠在一起吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值