VC++ 6.0试了一下
#include <iostream.h>
void main()
{
char a=1;
void *pi=&a;
cout<<*(float*)pi<<endl; //用float型指针解析char
}
输出 -1.07373e-008
char a=1 在内存中是
00000001
而 -1.07373e-008 根据浮点数存储方法是
11001100
11001100
11001100
00000001
为什么没有定义的内存在空闲时间中,每个字节是11001100,而不是00000000或者是随机数?
这是和操作系统的分配有关.?还是和硬件或者是编译程序有关的吖.?
这是编译器的设置。
在VC中,没有初始化的内存区域默认值就是0xc的,也就是 1100
所以你看到的那些1100的区域,就是属于没有初始化的区域。
和操作系统分配有关。。