const_cast有关问题

const_cast问题?
int   main()
{
const   int   a   =   1;
        int   *p   =   const_cast <int*> (&a);
        *p   =   2;
 
        cout   < <a < <   endl;
        cout   < <*p   < <   endl;

        cout   < <&a   < <   endl;
        cout   < <p   < <   endl;
}

result:
1
2
0x1111
0x1111




------解决方案--------------------
cout < <a < < endl;
004113F4 mov esi,esp
004113F6 mov eax,dword ptr [__imp_std::endl (4182A8h)]
004113FB push eax
004113FC mov edi,esp
004113FE push 1 // 看这里,编译器优化直接用 1 替换a了 :)

........................