void main()
{
const int a=10;
int *p=NULL;
p=(int *)&a;
*p=20;
printf("a:%d\n",a);
system("pause");
{
const int a=10;
int *p=NULL;
p=(int *)&a;
*p=20;
printf("a:%d\n",a);
system("pause");
}
结果是a=10;
因为c++编译器把a放到符号表里,专门供人使用。但是如果使用&a的话,编译器会另外找一块内存生成一个a的,另外开辟内存的a和符号表里的a没有关系。