学习C++ Primer 5th的时候发现以前对const的理解有缺漏的地方,为了加深印象在这里记一下。
- const修饰的变量是局部变量
编译器编译源文件时通常会把const修饰的变量进行替换,替换成const修饰的变量定义时的值。因此,编译每个独立的源文件时,如果源文件里有const修饰的变量,编译器必须能够看到该变量的初始化。我们知道,全局变量能够在多个文件里声明,但是在且只能在一个文件里定义。如果const变量能够做一个全局变量,它也只能在一个文件里定义及初始化,这样编译器编译别的文件时只看到该const变量的声明,无法知道它的值,就不能进行替换。因此const变量通常只作为局部变量存在。如果多个文件存都定义了同名的const变量,它们会被当做不同的局部变量分别处理。