对const修饰指针的方便理解

基本概念

1.当const修饰普通变量时
const int a=10;
则a为常量,a的值恒定为10无法被改变。

2.当const修饰指针变量时
(1)const在数据类型后面
int* const p=&a;
指针的指向无法被改变,但指针指向的值可以被改变
(2)const在数据类型前面
const int*p=&a;
指针的指向可以被改变,但指针指向的值无法被改变

如何更方便的理解

							当一个指针在定义时没有被const修饰:
							如 
							int *p=&a;
							无论是指针变量p的指向还是p所指向的值都是可以被改变的。
  1. const在数据类型后面 (int* const p=&a;)

当指针变量被如下定义时:
int* const p=&a;
可将const p 看做一个整体,即p的值是const型的无法被改变 ,众所周知p的值是一个地址,上例中p的值是用来存放a变量值的地址,我们说p指向a若p的值是一个常量,我们就无法完成像p=&b;即再次将p指向b这样的操作 同时这样的const修饰没有对 “指针变量本身可以修改所指向地址所存放的值 ” 这种属性造成影响, 所以就实现了上述属性------指针的指向无法被改变,但指针指向的值可以被改变。

  1. const在数据类型前面(const intp=&a;)
    当指针变量被如下定义时:
    const int
    p=&a;
    可将const int看成一个整体,即p所指向地址中存放的值为const int型,类比上述就很好理解了,p的指向可以修改的属性没有被改变,只限定了p最终指向的数值为一个常量,从而满足属性—指针的指向可以被改变,但指针指向的值无法被改变。

(新人记录学习心得,略有粗略,如有错误还请指正)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值