C++Primer-学习笔记-【const限定符】

用const对变量的类型加以限定,使的变量值不能被改变
因为const对象一旦创建,值不能发生改变,因此const对象必须初始化
const对象只在文件内有效,如果想要多个文件共享,只在一个文件中定义,多个文件中声明使用的话,需要在声明和定义时候添加extern关键字

const的引用

可以将引用绑定到const对象上,称之为对常量的引用,对常量的引用不能被用作修改它所绑定的对象。

初始化和对const的引用

引用类型必须与其所引用的对象保持一致,但又两个例外
1.初始化常量时允许用任意表达式作为初始值,只要该表达式的结果能够转成引用的类型。
2.允许为一个常量引用对象绑定非常量的对象、字面值,甚至一个表达式。

对const的引用可能引用一个并非const的对象

常量引用仅对引用可参与的操作进行限定,对于引用的对象本身是不是一个常量未做限定,因此对象也可能是个非常量,允许通过其他途径改变。

指针和const

指向常量的指针不能用于修改其所指对象的值,要想存放常量对象的地址,只能使用指向常量的指针。

const指针

允许把指针本身定位常量,常量指针必须初始化,而且一旦初始化完成,其值(存放在指针的地址)就不能发生改变。

顶层const

顶层const表示指针本身是个常量。
底层const表示指针所指的对象是一个常量。

constexpr和常量表达式

常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式。

constexpr变量

允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化。

指针和constexpr

在constexpr声明中如果定义了一个指针,限定符constexpr仅对指针有效,与指针所指的对象无关。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值