王真肉饼妹所有歌曲:简单的TC问题!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 05:06:21
main()
{int a[10],i;
for(i=0;i<9;i++)
a[i]=i;
printf("%d",a[i]);
} 最后的输出应该是a[9]=9 既输出9呀,为什么是3129呢?

for(i=0;i<9;i++)
a[i]=i;
执行完以上语句后,i=9;
a[9]没有赋值,是随机数。

a[8]=8后循环,检查i++的值不小于9,退出循环,此时i=9;

循环结束时i=10了,a[10]已经下标越界,对应的内存区域数据是未知的。

因为
从for(i=0;i<9;i++)知道:
你的a[9]并没有负值,输出的当然出错。