一、C语言中的const
1.const修饰的变量还是变量而不是真正的常量,它只是告诉编译器不能作为左值2.const修饰的变量是只读的,本质还是变量
3.const修饰的局部变量在栈上分配空间
4.const修饰的全局变量在只读存储区分配空间
5.const只在编译期有用,在运行期无用
二、C++中的const
1.C++在C的基础上对const进行进化处理当碰见const声明时在符号表中放入常量
在编译过程中若发现常量则直接以符号表中的值进行替换
编译过程中,若发现以下情况则给对应的常量分配存储空间
-对const常量使用了extern
-对const使用了&进行操作
2.C++编译器虽然可能为const常量分配空间,但是不会使用存储空间的值
3.C++中的const常量类似于宏定义
4.C++中的const常量与宏定义的不同
-const常量由编译器处理
-编译器对const常量进行类型检查和作用域检查
-宏定义由预处理器处理,单纯的文本替换
三、小结
1.与C语言中的const不同,在C++中const不是只读变量2.C++中const是一个真正意义的常量
3.C++编译器可能为会const常量分配空间
4.C++中完全兼容C语言中const的语法特性