数组越界(数组越界)
老张:小豆丁!快回来,不要闯红灯!小豆丁:额...现在又没有车...老张:没有车那也不行!知不知道闯红灯是很危险的事情!小豆丁:哦...老张:这是规矩,是我们应该遵守的。.
老张:小豆丁!快回来,不要闯红灯!
小豆丁:额...现在又没有车...
老张:没有车那也不行!知不知道闯红灯是很危险的事情!
小豆丁:哦...
老张:这是规矩,是我们应该遵守的。不要以为没有车辆经过就可以闯红灯了,闯一次没事,闯两次没事,可是一旦出事!那就一定是个大事!可能这辈子你都不会再有机会闯红灯了!
小豆丁:老张...你不要吓我...我知道错了...以后不会了...
老张:其实不仅仅在我们的生活中有些规矩要遵守,在我们写代码的过程中,有些问题也不能逾越,这些都是相通的。
小豆丁:哦?代码中也有不能逾越的规矩?是什么呀?
老张:比如说,数组越界!
小豆丁:什么是数组越界啊?
老张:就是超出数组的下标范围进行元素使用。
小豆丁:有点迷糊,具体说说呗!
老张:好,那我先问问你,下面这行代码啥意思?
int arr[4] = {1,2,3,4};
小豆丁:这个难不倒我!这行代码表示声明了一个叫做arr的数组,数组有四个元素,每个元素都是整数类型的,四个元素的值分别是1,2,3,4!
老张:嗯,说的不错,那我在问问你,这四个元素分别怎么表示啊?
小豆丁:想要表示这几个元素,需要通过数组下标的方式,这四个元素表示起来应该是这个样子:arr[0]、arr[1]、arr[2]、arr[3]。
老张:那这四个元素在内存分布上有什么特点啊?
小豆丁:它们每个元素在内存中都是占四个字节,并且在内存中是连续排列存在的,一个挨着一个的。
老张:说得对,那我再问你,arr[4]表示啥意思呢?
小豆丁:额...这个表示应该有问题吧,这个数组一共就是四个元素啊,最后一个元素的下标应该是3啊,arr[4]这种写法应该会报错吧!
老张:确定会报错吗?
小豆丁:额...我不知道了...
老张:其实这种写法不会报错,并且你能顺利的给下标为4的这个元素赋值!
小豆丁:为什么?这么神奇吗?明明数组中不包含这个元素啊!
老张:这就是数组越界问题!我们所列举的案例中,数组arr一共只有四个元素,下标从0开始,到3结束,而且在数组声明并初始化的时候,我们会在内存中占用连续的4*4个字节,这16个字节归数组的4个元素所使用,以后程序中声明的其他变量也不会占用这里,你可以理解成这四个元素所占用的16个字节是合法的,有正规手续的。而arr[4]这种写法并不会报错,它表示的是数组元素arr[3]之后紧邻的四个字节存储区。如下图。
但是这四个字节的存储区并不是合法的,它不在我们合法分配的16字节之,我们使用arr[4]这个元素相当于我们在非法使用权限范围之外的存储空间。那么这块存储空间原本存储的数据是什么我们不知道,可能有用,也可能没用。我们在给arr[4]这个元素赋值时,会对这块存储区里原本的数据进行覆盖。万一这里存储的是有用的数据,造成的后果可能不堪设想!
小豆丁:哦,我懂了,这就是数组越界啊,就是超出数组下标范围去使用非法的存储区了。
老张:没错,就是这个意思,数组越界使用存储区,如果这块存储区被占用,有重要的数据,那么整个程序的运行结果可能会错误,甚至整个程序都可能崩溃。就像我们过马路一样,不要抱着侥幸的心理去闯红灯,一旦出现意外,后果可能很严重!
小豆丁:老张,我知道了,以后一定会注意的!
老张:其实生活和编程有很多相通的地方,生活懂了,悟了,编程也就通了,顺了!
本文"数组越界(数组越界)",为东南医疗网搜罗发布,欢迎分享!感谢查看
声明:本文内容来自用户上传并发布或网络新闻客户端自媒体,本站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系删除。
相关文章
推荐文章
最新文章
- 健康丨中国精神疾病神经调控联盟上海启动 多方聚力促进神经调控领域发
- 健康丨哀悼!深切缅怀我国著名神经病学家郭玉璞教授
- 健康丨图知道|关注猴痘热点问题,做好科学防护
- 健康丨“晒背养生”掀起热潮,三伏天晒背有用吗?
- 健康丨浙江湖州实施中医药人才三年培养行动计划
- 健康丨别乱喝!这几类人群不宜喝绿豆汤
- 健康丨多地医院推行“一次挂号管三天”,规则有待进一步细化
- 健康丨为啥女性绝经后,不愿意过“夫妻生活”了?这个原因男女都要了解
- 健康丨紫云、镇宁、关岭三县开展协同检查严防严管严控药械安全风险
- 健康丨“养生大师”林海峰离世,享年51岁,反思:这6种养生方法太伤身
- 健康丨头皮发麻!南宁一女子体内惊现大量“瓜子”活虫,只因家人爱吃鱼
- 健康丨治疗干眼症,中医有妙招
- 健康丨9件癌细胞最“怕”的事,一定要多做!快收藏
- 健康丨沪滇协作支持 让多指畸形孩子勇敢伸出双手
- 健康丨(成都大运纪事)保障运动员健康 四川提供特色中医诊疗服务
- 健康丨好男人,不肾虚?若日常出现这6个小毛病,担心肾已经“虚透”!
- 健康丨夏季了解这个小知识,关键时刻能救命!
- 健康丨瘦人得糖尿病,或与这4个因素有关,不想糖尿病找上门,尽量避免
- 健康丨江北:提升基层医疗机构诊疗水平 将优质医疗服务送到群众家门口
- 健康丨南宁国际会展中心将举办“南宁国际成人展”?回应来了