const限定符限定变量的类型是一个常量,对象一旦创建后其值就无法改变,所以const对象必须初始化。

 

初始化  

const int i = get_size();     //运行时初始化
const int j = 42;                //编译时初始化

int k = 40;
const int ck = k;                //k的值 被拷贝给了ck

const对象的作用域 

默认情况下,const对象仅在文件内有效.

如果要在多个文件中共享const对象,必须在变量的定义之前添加extern关键字。 

//file_1.cc定义并初始化了一个常量,该常量能被其他文件访问
extern const int bufsize = fcn();  //这里必须加上extern,别的文件才可以用

//file_1.c 头文件
extern const int bufsize; //与file_1.cc中定义的bufsize是同一个

const的引用  

 因为引用所代表的就是另外一个对象的,别名而已,所以考虑引用所对应的对象是否被改变即可!!const对象也不是不能改变,下面会有提到!

1 const int ci = 1024;
2 const int &r1 = ci;    // 正确:引用及其对应的对象都是常量
3 r1 = 42;                   // 错误:r1 是对常量的引用
4 int &r2 = ci;             // 错误:试图让一个非常量引用指向一个常量对象
5                                //试想,c1的值不可改变,但r2的值可改变,那么改变r2就是改变c1,显然不对 
6 int i = 125;
7 const int & r3 = i;    //允许将const int & 绑定到一个普通的int对象上    
View Code

相关文章: