| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1747 人关注过本帖
标题:C语言里数组的问题
只看楼主 加入收藏
ltfkdc
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:11
专家分:8
注 册:2010-7-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:22 
C语言里数组的问题
为什么 int a[10]={5,12,8,20,15};    printf("%d\n",a[10]);的结果是1245064,我用的是VC++
而我改为
void main()
{
    int i,a[10]={5,12,8,20,15};
    for(i=0;i<10;i++)
        printf("%d\t",a[i]);
    printf("%d\n",a[10]);
}
时,A[10]的结果是10.这又是为什么,
我再改为
void main()
{
    int a[10]={5,12,8,20,15},i;
    for(i=0;i<10;i++)
        printf("%d\t",a[i]);
    printf("%d\n",a[10]);
}
时a[10]的值又是1245064.求高手解答,小弟才学的,还有题目问的a[10]的值到底是多少




[ 本帖最后由 ltfkdc 于 2010-7-30 00:30 编辑 ]
搜索更多相关主题的帖子: C语言 
2010-07-30 00:28
灰色代言
该用户已被删除
收藏
得分:2 
提示: 作者被禁止或删除 内容自动屏蔽
2010-07-30 04:59
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
收藏
得分:2 
int a[10]={5,12,8,20,15};    你只初始化了前面5个值啊,后面5个值没初始化,你打印后面的5个值当然是不可预料的啊。。。
2010-07-30 08:14
LSYHEFENG
Rank: 2
等 级:论坛游民
帖 子:112
专家分:71
注 册:2010-7-17
收藏
得分:2 
像这样赋初值,a[5]到a[9]系统会自动置0,a[10]才是无法预料的
2010-07-30 08:14
Rexfield
Rank: 6Rank: 6
来 自:幻想乡
等 级:侠之大者
威 望:1
帖 子:240
专家分:484
注 册:2010-7-28
收藏
得分:2 
你的a[10]是i了。
其实就是一个数组越界问题。
图片附件: 游客没有浏览图片的权限,请 登录注册

i的数据空间在a[]之后
C的数组寻址算法就是:
a+N  N是下标a是数组的起始地址
所以a[10]=a+10*4=i

[ 本帖最后由 Rexfield 于 2010-7-30 08:36 编辑 ]

If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-07-30 08:32
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:2 
原来C语言可以数组越界的

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-07-30 08:40
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:2 
上面的各位基本已经讲的比较清楚了,a[5]到a[9]的值都等于0,
但是a[10]在你定义的这个数组里面已经是越界了,他出现的值是随机的。
所以你每次运行得到的结果都会不一样。
2010-07-30 08:54
星舞突击者
Rank: 2
等 级:论坛游民
帖 子:15
专家分:68
注 册:2010-7-30
收藏
得分:2 
楼上正解
2010-07-30 09:54
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:2 
越位了,因为数组a[10]中只有a[0]---a[9]这十个元素,并没有a[10]

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-30 10:10
ltfkdc
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:11
专家分:8
注 册:2010-7-30
收藏
得分:0 
我知道是越界了,但是书上有个题目就是这样的,他就问我a[10]的值是多少,搞的很郁闷,就来问大家了啊,是个填空题,不知道填什么
2010-07-30 11:26
快速回复:C语言里数组的问题
数据加载中...
 
   



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

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