const限定符把一个对象转换为一个常量。
const int bufSize = 512;//定义bufsize为常量并初始化为512
bufSize = 0;//error
任何试图修改bufsize的值都将导致错误。
因为定以后不可修改,故必须在定义时初始化;
const对象默认为文件的局部变量
全局作用域里定义的非const变量时,它在整个程序中都可以访问,通过使用extern。假设一个非const变量在一个文件中,假设已做了适合的声明,就可以在顶一个文件中使用这个变量:
//file_1.cc
int counter; //定义
//file_2.cc
extern int counter;//声明并 使用在file_1中定义的counter
++counter;
与其他变量不同除非特别说明,在全局作用域声明的const变量时定义该对象的文件的局部变量。 需要通过制动const变量为extern 才可以在整个程序中访问;
//file_1.cc
extern const int bufSize = fcn();// 定义并初始化
//file_2.cc
extern const int bufSize;//声明
非const变量默认为extern。 要使const变量能够在其他文件中访问必须显示指定它为extern。