在C语言中,const限定符有以下几个作用:
(1)“readonly”:只读的变量,定义以后就不能被修改;
(2)全局作用域:全局连接,即可以被除所定义文件外的其他文件使用;(这里进行修改如下)
(2)C语言中,const默认的外部链接,因此,如果在不同的编译单元中有同名的const变量,会发生命名冲突;而在C++中,const默认为内部链接,因此在不同的编译单元中出现同名的const变量不会引起命名冲突。
(3)const定义的只读变量必须在定义的时候进行初始化;
在C++语言中,const限定符有以下几个作用:
(1)常量
-
const int bufsize = 512;
- int a[bufsize];
(2)const对象默认为文件的局部变量,即局部连接
在全局作用域中定义非const变量,它在整个程序中都可以访问。可以把一个非const变量定义在一个文件中,假设已经做了合适的声明,就可在另外的文件中使用这个变量:
-
//file1.cc
-
int counter; //defination
-
-
//file2.cc
-
extern int counter; //using counter from file1.cc
- ++counter;
记住:
在C++中,非const变量默认为extern。要使const变量能够在其他的文件中访问,必须显式的指定它为extern。
(3)因为常量在定义后就不能被修改,所以定义的时候一定要初始化。