谁来拯救我的c语言~~~

[复制链接]
查看11 | 回复1 | 2011-5-11 11:56:45 | 显示全部楼层 |阅读模式
我编了个这样的程序:
#includestdio.h
voidmain()
{
inta[5];
printf(\"%d\\n\",a[0]);
}
结果测试时输出-858993460,这是什么意思?a[0]未赋值前默认这么多吗?但是整型变量的范围不是-32768~32767吗?
后来我又编了个这样的程序:
#includestdio.h
voidmain()
{
inta[5];
printf(\"%d\\n\",a[5]);
}
结果输出1245064,这我就更懵了,a[5]这个变量根本不存在的呀,它输出这个算什么呢?
回复

使用道具 举报

千问 | 2011-5-11 11:56:45 | 显示全部楼层
声明变量后未赋值,其变量值可以当做随机数
而第二段明显访问了数组外空间,C不像JAVA会检查是否访问到数组外空间,而忠实地进行操作,其值也不可预测
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行