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型比较长,无法存放两个值
求解答~~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。