你想问为什么是这个数,主要是因为编译器在作怪,如果你懂汇编,那么反汇编调试,容易知道
-858993460的十六进制是0xCCCCCCCC,0xCC在X86指令集中为int 3,int 3中断,呵呵,OD其实就是用这个实现的,DEBUG这个机制是为了程序出现内存越界时调试器可以捕捉断点这个异常,而在RELEASE下默认直接是内存清零,用VC RELEASE编译以后显示的结果为0
代表没有初始化定义的变量a,一般定义一个变量要初始化,不初始化就会分配个随机内存地址,像整形一般情况是很大的一个随机值。
这个应该是一个不确定数,并且应该会出现警告吧。因为你没有初始化,不过好像大多的编译器会自动初始化为0
你只做了个口袋,里面什么都没有装进去,却要往外掏,能掏出什么来?只有残留的垃圾……
a没有赋值,所以随机分配内存,而空闲内存里的数据就大部分是-858993460。