const 在指针中的作用和一些帮助理解

int const *p = &a;

顺带说明下 const int *p 和 int const *p 其实是一个意思,我习惯统称为*号前。

 

 在*号前面的作用:

 

为什么会这样呢???

  下面这幅图表明了意思  const *pa 只是将*pa保护了起来,直接使用*pa 就是直接调用a,所以你不可能 *pa = 4 这样来改变值

但是它还有另一种改变的方式,就是将第二次的地址换掉,pa = &b

就好比,有个按钮,按了就发射核弹了,你为了保护这个按钮,给它做了个很强大的保护罩,我无法下手,那我直接把按钮连接的线接到另一个东西上,你在按动按钮,确实通电了,但却不在是连接核弹了

 

 

 int a = 3;

int * const pa = a;

 

 

下面这个图简要说明了下

 const 保护的是 pa装载的地址 也就是 a 地址

这时候这块东西是无法做任何改动的,pa 是无法操作的,那就通过*pa 来进行操作

总结下来,const 保护的是它右侧的数据 

 const *p  ->保护 *p  ,*p的调用方法就无法使用

* const p ->保护p  ,p的调用方法就无法使用

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值