c++ 编程 int a; cout<<a<<endl; 输出的是-858993460 请问这个数字代表什么?

2025-01-05 00:49:46
推荐回答(5个)
回答1:

你想问为什么是这个数,主要是因为编译器在作怪,如果你懂汇编,那么反汇编调试,容易知道
-858993460的十六进制是0xCCCCCCCC,0xCC在X86指令集中为int 3,int 3中断,呵呵,OD其实就是用这个实现的,DEBUG这个机制是为了程序出现内存越界时调试器可以捕捉断点这个异常,而在RELEASE下默认直接是内存清零,用VC RELEASE编译以后显示的结果为0

回答2:

代表没有初始化定义的变量a,一般定义一个变量要初始化,不初始化就会分配个随机内存地址,像整形一般情况是很大的一个随机值。

回答3:

这个应该是一个不确定数,并且应该会出现警告吧。因为你没有初始化,不过好像大多的编译器会自动初始化为0

回答4:

你只做了个口袋,里面什么都没有装进去,却要往外掏,能掏出什么来?只有残留的垃圾……

回答5:

a没有赋值,所以随机分配内存,而空闲内存里的数据就大部分是-858993460。