const符号表机制

来源:互联网 发布:方正静蕾体 mac版 编辑:程序博客网 时间:2024/06/05 20:25

传智扫地僧课程学习笔记。


C语言中的const修饰的变量,
看起来不能修改,
其实可以通过指针变量,来间接修改,
const int a = 10;
int *p = NULL;
p = (int *)&a;
*p = 20;
cout<<a<<endl;
输出结果就是20,
注意这是C编译器中!!!




同样的代码,
在C++中,
就无法修改,




原因是什么呢?
C++中const修饰的变量,
会放在一个符号表中,名值对中,写死了,
它可能分配内存空间,也可能不分配,
你再通过指针去间接修改,修改的就不是同一个,



0 0
原创粉丝点击