const int a = 10;
int* p = (int*)&a;
*p = 11;
问题:
- 调试时候,a的值编程11了,a所在的内存中也变成11了。
- 输出a,或者用a给其他变量赋值,仍然是10。
int xx = a;
004114F4 mov dword ptr [xx],0Ah
而一个变量给另外一个变量的赋值:
int yy = c;
00411502 mov eax,dword ptr [c]
00411505 mov dword ptr [yy],eax
汇编看出,给xx赋值的还是常数0Ah。