数组越界(DAY 30)

1:引例1:

推荐文章1
推荐文章2

2:数组越界原因:

在这里插入图片描述
可以看到,我们reverse的a+6 超出了定义的数组的长度5 ,就出现了一个相对来说很大的数字,32767 这是多少? 2的15次方等于32768 32767就等于2^15 -1 为什么减去1? 在计算机组成原理中,二进制数的范围就是-2的15次方到 +2的十五次方-1。因为中间有一个0。从这里我们又可以知道,为什么是15次方? 看来在该编译器中,数组的产长度是 4 个4位
在这里插入图片描述

这个是全1的情况,也就是16个1 代表2的十五次方(这里不是补码的意思,如果是补码的话,最开始的1代表负号,也就是最左边的,但是我们在这里只表示数字的大小)。

正确的遍历的范围应该是a,a+5
在这里插入图片描述

错误2:

在这里插入图片描述
返回7就越界了,和我上一篇文章实验的错误一样

总结:

当对数组的操作范围超出自己定义的数组的范围时,就会出现数组越界现象。 超过定义的范围后,内存中的地方就是未定义的了,所以内存中该位置存储的值也就是随机的了。 那个地址没有用过,所以是一个随机值
在这里插入图片描述
以我这篇文章的题目为例,当要使用的参数超出了我们定义的数组下标的范围,就会看见得到的结果是一个很大的数,从下标5 开始 就是未定义的了,所以内存中该位置存储的值也就是随机的了。 那个地址没有用过,所以是一个随机值。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张学恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值