1:引例1:
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 开始 就是未定义的了,所以内存中该位置存储的值也就是随机的了。 那个地址没有用过,所以是一个随机值。