为了账号安全,请及时绑定邮箱和手机立即绑定

为什么数组不报错

int array[2]

array[3]=100;//申请数组应该是两个值,为什么在这不给报错?

正在回答

1 回答

编译器不会对数组访问越界进行检查。

因为数组和指针是有密切联系的,很多时候编译器无法确定你访问的位置是否在合理的范围内,所以编译器就干脆对此不检查了。  实践中,有经验的程序员经常活用这种数组和指针的关系。


当然,你这两行代码确实是错的,对array[3]的访问确实越界了。虽然能编译通过,但运行时可能会发生错误。

0 回复 有任何疑惑可以回复我~
#1

香浓一笔 提问者

非常感谢!
2015-10-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么数组不报错

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号