const的用法

const是C++中的一个关键字,用来限定一个变量不允许改变,当然在C语言中const的使用也同样适用。const修饰的变量可以是普通变量也可以是指针变量,下面我以整型指针(int *ptr)的const写法进行讲解。
对于一个整型指针我们对它有四种封锁方式:
(1) int *const ptr;
(2) const int *ptr;
(3) int const *ptr;(与2相同下面不再说明)
(4) const int * const ptr;
我们假设 ptr指向一个整数a;
ptr里存的是a的地址所以*ptr相当于是对a进行操作
第一种情况:我们封锁的是指针本身和封锁普通变量没有区别,即指针ptr里存的地址不能改变,不能再随意指向其他整型变量。
这里不能改变ptr的指向到变量b
第二种情况:我们封锁的是*ptr,*ptr是对a进行操作,即通过*ptr不能改变a的值。但如果a没有申明为const我们是可以通过a本身来改变自己的值。如果a申明为const则把a的地址交由ptr时我们也要通过const封锁*ptr,因为我们不能把常量赋给变量*ptr,这样意味着我们可以通过*ptr改变a的值和a本身是个常量冲突。
这里写图片描述
第四种情况:*ptr和ptr都用const封锁,即我们不能改变ptr的指向也不能通过*ptr改变a的值。

综上所述,我们对const的使用主要看const的位置,封锁ptr再不能改变ptr的指向,封锁*ptr则不能通过*ptr改变a的值。
新人上路,文章有错误之处还请多多指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值