在qq群里发现这样一段代码。
const int e=3;
int *w=(int *)&e;
*w=6;
int a=e;
转换成反汇编后:
const int e=3;
004139F8 mov dword ptr [e],3
int *w=(int *)&e;
004139FF lea eax,[e]
00413A02 mov dword ptr [w],eax
*w=6;
00413A05 mov eax,dword ptr [w]
00413A08 mov dword ptr [eax],6
int a=e;
00413A0E mov dword ptr [a],3
*w=6;这一句改变了 地址的值
但是 重新赋值给a的时候 还是用的3
·······