开发者社区 问答 正文

同样地址,内容不一样的问题

const int x = 50;

int* y = (int *)(&x);
*y = 200;
cout << "x: "<<x<<" address: "<<&x<<endl;
cout << "*y: "<<*y<<" address: "<<y<<endl;
cout<<endl;

以上是一段代码,输出的结果是:x: 50 * y=200 地址是一样的.
但是如果我把int改成float或者double那么值就都变成了200..
是不是因为原来为int型,一个地址存放了两个值,float型比较长,无法存放两个值
求解答~~

展开
收起
a123456678 2016-03-20 10:28:28 1817 分享 版权
1 条回答
写回答
取消 提交回答
  • 对 const 类型变量进行间接的修改,就会导致相同地址的数值是不一样的,与变量的类型,int 或 float 无关。

    2019-07-17 19:08:51
    赞同 展开评论
问答地址: