const int x = 50;
int* y = (int *)(&x);// same address, but the content is different
*y = 200;
cout << "x: "<<x<<" address: "<<&x<<endl;
cout << "*y: "<<*y<<" address: "<<y<<endl;
cout<<endl;
为什么相同的地址 内容却不相同
const int x = 50;
这是因为 x在声明时加上了const, 所以 ,
这时,x定义为50 成了定值,也可以说是只读常量,就是x的值不能被修改,
int *y = (int *)(&x);
这句程序,因为取的是x的地址,将y的指向同样指向了x的地址;(但这点x的值并没有付给y,是y指向了x的地址)
*y=200;
这点将*y的值 改成了200,但是y还是指向x的地址,这就相当于将两只手同时指向一个人,但是,一个是左手,一个是右手。
所以,输出时,x与*y的值不同,但是因为他们的指向地址相同,所以地址输出后相同
这是我自己的看法!希望大家说下自己的看法