const满足定义一种变量在被设置初始值后它的值不能再次被改变。
在默认状态下,const对象仅在文件内有效。
假设需要在不同文件下共享需要添加关键字extern,这样只需要定义一次就够了。
extern const int bufSize;
1、const 的引用
把引用绑定到const上,和其他对象使用一样,最大的区别在于对常量的引用不能被用作他所修改的绑定对象:
const int ci=1024;
const int &rl=ci;//正确:引用及其对应的对象都是常量
rl=42;//错误:rl是对常量的引用
int &r2=ci;//错误:试图让一个非常量引用指向一个常量对象ci不允许赋值,当然也不可能通过引用去改变ci;
初始化和对const的引用
引用类型必需与其所引用对象的类型不时,但是有两个例外:
1)一个是初始化常量引用时允许任意表达式作为初始值,只要该表达式的结果能转化成引用的类型即可。
int i=42;
const int &rl=i;//正确:允许将const int&绑定到一个普通int对象上
const int &r2=42;//正确:r2是一个常量引用
const int &r3=rl*2;//正确:r3是一个常量引用
int &r4=rl*2;//错误:r4是一个普通非常量引用对const的引用可能引用一个并非const对象
int i=42;
int &rl=i;//引用r1绑定到一个i对象上
const int &r2=i;//r2也绑定对象i,但不允许通过r2修改i值
r1=0;//r1并非常量,i的值修改为0
r2=0;//错误:r2是一个常量引用
2、指针和const
const int *p=nullptr;//p是一个指向整型常量的指针
constexpr int *q=nullptr;//q是一个指向整数的常量指针与其他常量指针类似,constexpr 指针既可以指向常量也可以指向一个非常量。
到此这篇关于C++中的const限定符的使用和作用的文章就介绍到这了,更多相关C++ const限定符内容请搜索网站以前的文章或继续阅读下面的相关文章希望大家以后多多支持网站!