int _tmain(int argc, _TCHAR* argv[])
{
const int i = 0;
cout << i << endl;
int *p = (int *)&i;
cout << p << endl;
cout << *p << endl;
*p = 100;
cout << *p << endl;
cout << p << endl;
cout << i << endl;
cout << &i << endl;
return 0;
}
输出结果:
0
0012FF60
0
100
0012FF60
0
0012FF60
上段代码值得注意的地方是p和&i所指向的地址是相同的,都是0012FF60,但得到的内容却不同(*p是100, i是0)。
估计和操作系统内存的分配方式有关。
求高手解答。