看以下代码const int t = 10;
int* aa = (int*)&t;
*aa= 100;aa应该指向了t所在的内存。t是分配了内存的
在VC中观察内存显示t是被改变了的
但是在使用t时,其值并没有改变
刚接触c++,其中原理不是太清楚
各位大虾能不能给解释一下其中的原因
int* aa = (int*)&t;
*aa= 100;aa应该指向了t所在的内存。t是分配了内存的
在VC中观察内存显示t是被改变了的
但是在使用t时,其值并没有改变
刚接触c++,其中原理不是太清楚
各位大虾能不能给解释一下其中的原因
解决方案 »
- 一个对话框里,按下一个按钮,实现关闭自身再重新打开,有办法吗?
- NetworkStream.CanWrite方法返回true的时候是不是说明网络连接是OK的?
- 我怎么才能在程序中用代码创建数据库呢,VC+SQL SERVER 2000
- 请问如何调用自己写的静态库lib中的方法?
- 近来在学习STL中,对于VECTOR,LIST,MAP还不是很熟悉,请各位赐教,或者给予相关资料
- 求书!!!!
- 在VC中如何使用windows 媒体播放器这个控件?
- 采集的数据存储量大,想根据日期动态的每月自动创建表,存当月的数据.
- 看书记不住怎么办?《windows核心编程》
- 如何实现将一个EDIT和一个BUTTON组合成一个ActiveX控件?
- 有谁知道Visual C++有没有类似javadoc那样的自动生成文档的插件? 给500分
- 谁知道Win98序列号!200分送
// 这一句声明了一个常量t,编译器一般不对t分配内存地址,而是在编译之前
// 将把所有的t都替换成10int* aa = (int*)&t;
// 这一句是因为要和c兼容的原因才被允许的,编译器为t分配了内存,并用10
// 初始化*aa= 100;
// 为t分配的内存的值变为100, ,但这并不影响预编译过程中用10替换t