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

 我来答
玄素圣王
推荐于2018-03-29 · TA获得超过453个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:122万
展开全部
你想问为什么是这个数,主要是因为编译器在作怪,如果你懂汇编,那么反汇编调试,容易知道
-858993460的十六进制是0xCCCCCCCC,0xCC在X86指令集中为int 3,int 3中断,呵呵,OD其实就是用这个实现的,DEBUG这个机制是为了程序出现内存越界时调试器可以捕捉断点这个异常,而在RELEASE下默认直接是内存清零,用VC RELEASE编译以后显示的结果为0
zhang309283627
2012-12-10
知道答主
回答量:16
采纳率:0%
帮助的人:2.5万
展开全部
代表没有初始化定义的变量a,一般定义一个变量要初始化,不初始化就会分配个随机内存地址,像整形一般情况是很大的一个随机值。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
601539847
2012-12-07 · TA获得超过169个赞
知道答主
回答量:79
采纳率:0%
帮助的人:39.4万
展开全部
这个应该是一个不确定数,并且应该会出现警告吧。因为你没有初始化,不过好像大多的编译器会自动初始化为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2012-12-07 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:7012万
展开全部
你只做了个口袋,里面什么都没有装进去,却要往外掏,能掏出什么来?只有残留的垃圾……
追问
对啊,系统不会让口袋空着,只能往里面填一些东西。我只是想知道这些东西是否有什么特殊的意义?还是只是默认的一些无意义的数字?
追答
毫无意义的数字!也不是默认的,而且同样的代码在不同平台下会是不同的数字;即是同一平台,当打开的文件多或少时也可能会显示不同的数字!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91292b5
2012-12-07 · TA获得超过484个赞
知道小有建树答主
回答量:351
采纳率:72%
帮助的人:102万
展开全部
a没有赋值,所以随机分配内存,而空闲内存里的数据就大部分是-858993460。
更多追问追答
追问
但如果 这样:
int *a=new int[5];
for(int i=0;i<5;I++)
cout<<a[i]<<endl;
输出的又都是-842150451
这有真么解释?
追答
数组里5个元素都没赋值,所以输出内存里默认保存的-858993460
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式