wordpress CMS主题 微信
Home > C++开发 > 什么是数组下标越界

什么是数组下标越界

高时银博客 C++开发 点击: 2,375 次 0 0
  • 标签: |
  • 数组下标越界:是一个程序初学者最容易犯的错误之一。C++编译器是根据元素的大小(类型)和编号(下标)来计算数组中一个值存放在哪里的。

     

    例如:定义一个数组int a[4]; 而a[2]是这个数组的一个元素,因为该数组类型是整型,而整型变量占地址内存4位,所以a[2]的值应存放在4*3字节处。下标是从0开始的,所以如果要写入a[4]的值,就是数组下标越界,该数组的最大下标是3。但编译器不管,它照样写入,这样一来,它会写入到其它的内存地址,如果该内存地址中原来存有数据,这些数据就会被修改,那就出现错误,甚至程序崩溃。

    形象一点地说,打个比方,把数组比作一个杯子,这只杯子只能装400ml的水,而我们一下子倒了500ml的水,那么这个杯子装满400ml的水后,剩下的100ml 的水就装不进这个杯子了,这100ml 的水就会溢到旁边的装有酱油的杯子里。


    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201402171082.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    目前还没有评论。赶快来坐沙发吧。

    发表评论