const限定符的使用

有时候我们需要这样一种变量,它的值不能被改变,也应随时警惕防止程序一不小心改变这个值。为了满足这一要求,可以用关键字const对这变量的类型加以限定。

  1. const对象一旦创建,其值就不能在改变。

  1. const对象必须初始化。

  1. 初始化可以是任意表达式。

    const int bufSize = 520; //对变量bufSize加const限定,bufSize就定义成了一个常量
    bufSize = 250; //报错,const对象一旦创建,其值就不能在改变,因此const对象必须初始化
    const int k; //报错,const对象未初始化,初始化可以是任意表达式(const int k=表达式)

const的引用

常量对象:例如:const int ci=1024;这里的ci就是常量对象。

常量引用:例如:const int &ri=ci; 这里的r1就是常量引用。

  1. 常量引用绑定的可以是常量对象也以是非常量对象

  1. 非常量引用绑定的必须是非常量对象

const int ci1=1024;//ci1为常量对象
int ci2=52;//ci2为非常量对象
const int &r1=ci1;//正确,常量引用绑定常量对象
const int &r2=ci2;//正确,常量引用绑定非常量对象,但不能通过r2修改ci2的值,允许将const int&绑定到一个普通的int对象上
int &r3=ci1;//错误,非常量引用绑定常量对象
int &r4=ci2;//正确,非常量引用绑定非常量对象

一般,引用的类型必须与其引用对象的类型一致,但是有两个例外,一是在初始化常量引用时允许任意表达式作为初始值,只要该表达式的结果能转换成引用的类型即可。

double dval=3.14;
const int &ri=dval;
//这种情况编译器会转换成一下代码
const int temp=dval;//这里的temp是一个临时生成的整形变量
const int &ri=temp;//让ri绑定这个临时变量

指针和const

指针常量:也叫顶层const,表示指针本身是个常量。

常量指针:也叫底层const,表示指针指向的对象是个常量。

int a=52;
int b=25;
//顶层const
int *const p=&a;//p不可以改变,*p可改变
p=&b;//不允许
*p=199;//可以
//底层const
const int *p=&a;//*p不可以改变,p可以改变
p=&b;//允许
*p=199;//不允许
//底层const和顶层const
const int *const p=&a;//*p和p都不允许改变
p=&b;//不可以
*p=199//不可以

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值