demo
// C语言中的const是一个冒牌货 int main() { // 好像a是一个常量 const int a = 10; int *p = NULL; p = (int *)&a; *p = 20; // 间接赋值 printf("a:%d ", a); // C语言中显示a被修改了 // C++则显示a还是10,没有改变 return 0; }
C++中的const是一个真正的常量
解释:
C++编译器对const常量的处理。
当碰见常量声明时,在符号表中放入常量。
编译过程中若发现使用常量则直接以符号表中的值替换。
编译过程中若发现对const使用了extern或者&操作符,则给对应的常量分配存储空间(兼容C)。