| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3248 人关注过本帖
标题:请教关于数组默认值的问题
只看楼主 加入收藏
鼻涕龙
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2010-6-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
请教关于数组默认值的问题
如果给出数组元素个数,如int ia[5]={3,5,7};这样赋值系统默认ia[3],ia[4]的值分别为 0, 0。
但是不给数组元素个数,如int ia[]={3,5,7};这样赋值系统默认ia[3],ia[4]的值分别为 3, 4。
为什么呢?
搜索更多相关主题的帖子: 元素 
2010-06-05 15:49
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:10 
第一句话对。
第二句 ,不对。
如果没有给出数组的长度,那么长度就是你在后面给出的几个数值就有几个元素。所以你所举的例子的数组ia就只有三个元素了。

南国利剑
2010-06-05 15:52
鼻涕龙
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2010-6-3
收藏
得分:0 
那就是说第二句 ia[3]实际上就是ia[0]了?
个人觉得向第二句这样的系统应该会提示ia[3]不存在啊?
2010-06-05 16:26
blocksky
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-05 17:32
鼻涕龙
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2010-6-3
收藏
得分:0 
编译通过了
2010-06-05 17:38
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:10 
但是不给数组元素个数,如int ia[]={3,5,7};这样赋值系统默认ia[3],ia[4]的值分别为 3, 4。
ia[3],ia[4]你这样就是越界了,C++和C不检查数组有没有越界(所以是会通过编译的),有没有越界是我们自己要检查的,访问ia[3]ia[4]得到的值没什么意义,但是修改的ia[3]ia[4]的值就是很危险的事。

迭代的是人,递归的是神。
2010-06-05 17:44
鼻涕龙
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2010-6-3
收藏
得分:0 
明白了!谢谢大家
2010-06-05 17:52
Isilendil
Rank: 2
来 自:广东省广州市
等 级:论坛游民
帖 子:13
专家分:42
注 册:2010-6-2
收藏
得分:0 
典型的缓冲区溢出,a[3]和a[4]的值未必是3和4,我在自己的机器上用Dev-C++,得到的结果是4198592和4370432。
结果应该是依赖于编译器或者机器吧
2010-06-06 13:27
快速回复:请教关于数组默认值的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017485 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved