[C++] const限定符

作用

限定一个对象为常量,该对象的值不能被改变,且该对象必须初始化
在这里插入图片描述

指针和const

指针作为一种对象,自然也能被const修饰成常量,而指针所指向的也是对象,同样也可以被const修成成常量

1.指针所指向的对象被const修饰成常量(指向常量的指针)

在这里插入图片描述
const double pi=3.14;
const double * cptr=π

从右向左解释语句:

cptr(对象名),*(是个指针),double(指向double型),const(的常量)

指针所指向的对象被const修饰成一个常量,常量无法更改,但指针本身可以更改,即指针可以指向别的地方

总结:
在这里插入图片描述

如果一块内存区域内存的是常量,就不能再用一个指向变量的指针指向这块区域,因为存在通过这个指针改变这块内存区域内的数值的可能。
在这里插入图片描述

如果一块内存区域内存的是变量,还可以用一个指向常量的指针 p p p 指向这块区域,虽然不能通过
p p p 改变这块内存区域内的值,但是通过 a a a 仍能改变这块内存区域内的值。在这里插入图片描述

2.指针自己被const修饰成常量(const指针)

在这里插入图片描述

int * const curErr=&errNumb;

从右向左解释语句:

curErr(对象名),const(这个对象被const修饰成常量),*(这个对象是个指针),int(指向int型)

指针作为一个对象,被const修饰成一个常量,无法更改,即无法指向别的地方,但指针所指向的对象是个变量,可以被修改成新的值

3.指针所指向的对象被const修饰成常量,同时指针自己也被const修饰成常量

const double * const pip=π

从右向左解释语句:

pip(对象名),const(这个对象被const修饰成常量),*(这个对象是个指针),double(指向double型),const(的常量)

指针的指向和指针所指向的地址内存的值,都不能改

顶层const:指针本身是一个常量

底层const:指针所指向的对象是一个常量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值