const限定符

const
有时想定义一个变量,它的值不能被改变。列如,用一个变量来表示缓冲区的大小,这时我们就可以用const来定义。

const int bufSize=512;
bufSize=512;//错误:试图向const对象写值

初始化和const
const用在变量定义时的类型前表示该变量不可改变,注意:该变量必须初始化(可以在运行时初始化)。
默认状态下,const对象仅在文件内有效。如果想在多个文件内共享const对象,必须在变量的定义之前添加extern关键字。
const的引用
即把引用绑定到const对象上。

const int =100;
const int &a=i;
a=10;//错误,a是对常量的引用
int &b=i;//错误:试图让一个非常量引用指向一个常量对象

指针和const
1.指向常量的指针:不能用于改变其所指对象的值。要想存放常量对象的地址,只能使用指向常量的指针。
2.常量指针:必须初始化,不能改变
3.指向常量的常量指针。const float *const p;
顶层const和底层
顶层const:表示指针本身是个常量
底层const:表示指针所指的对象是一个常量
顶层const的拷贝不受限制,但是底层const的拷贝的对象必须具有相同的底层const资格。
一般地非常量可以赋值给常量,反之则不行。
constexpr和常量表达式
常量表达式:指值不会改变并且在编译过程就能得到计算结果的表达式。
在constexpr声明中如果定义了一个指针,限定符constexpr仅对指针有效,与指针所指的对象无关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值