未初始化变量的赋值问题
#include <stdio.h>int main()
{
int i;
int p;
printf("0x%08x\n",i);
return 0;
}
使用上面的代码测试,在 DEBUG 模式下 ,我的机子始终输出的是 0xcccccccc ,而 release模式下为0X004070b8
在网上找了好久,终于找到 DEBUG 模式下未初始化变量赋值为 0xcccccccc的原因是:
在内存中,0xcccccccc就是int 3,对应的中断号3,也就是单步中断。这样有利于VC进行单步调式
但是一直找不到 release模式下为0X004070b8 的原因。
当然可能这只是个随机值,只是我重新编译了很多次,始终是这个值,希望大家帮忙编译确认下是不是就是这个确定值,还是一个随机值。如果是确定值的化,我相信这背后一定也由原因