鱼C论坛

 找回密码
 立即注册
查看: 1844|回复: 10

刚刚开始学数组,一大堆的疑问

[复制链接]
发表于 2015-5-3 22:03:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
<div class="blockcode"><blockquote>#include<stdio.h>
void main()
{
        int a,b[10]={0,1,1,1,1,1,1,1,11,1};

        for(a=9;a>=0;a--)
        {
                printf("%d\n", b[111]);
        }
}</blockquote></div><br />


就是上面这个代码,使用for语句循环打印这个数组的值,但是那里我故意填了111的(我只定义了10个应该会报错的吧)。我想看看会怎样的,但编译器没报错,他没有,没有报错呀!还打印了这个结果,到底怎么个情况呢,求解答!刚刚开始接触数组 @ERML`L[V4J7}V[2A{}(UGF.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-3 22:25:25 | 显示全部楼层
用C语言标准的话来解释,数组越界会产生“不可预知的错误”。当然,如果你C语言已经学透,并且想专研C语言标准之下的东西,你可以研究下汇编语言。。。以及它和C语言之间的关系。。。研究完就知道,数组越界后编译器的行为是可以预测的(但这个对于C语言初学者完全没必要,你现在要做的,是准售规则,尽快能够用C语言写出实用的程序)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2015-5-3 22:34:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-3 22:38:17 | 显示全部楼层
你这个应该是越界了~然后b[111]中取得是一个完全没有意义的数据,可能只是刚好取到了920,我运行之后是0.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2015-5-3 22:40:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-4 23:17:03 | 显示全部楼层
仰望天上的光 发表于 2015-5-3 22:25
用C语言标准的话来解释,数组越界会产生“不可预知的错误”。当然,如果你C语言已经学透,并且想专研C语言 ...

哦,明白了!!谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-4 23:18:09 | 显示全部楼层
Mr.屎壳螂 发表于 2015-5-3 22:38
你这个应该是越界了~然后b[111]中取得是一个完全没有意义的数据,可能只是刚好取到了920,我运行之后是0.

谢谢帮忙解释!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-4 23:18:40 | 显示全部楼层

{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-6 23:11:23 | 显示全部楼层
前提声明: 我也是新手 猜的 。
    你输出的是a[111],应该就是 a数组首地址 的后 111 位 ,根据内存来看,应该输出的是内存中的数字。是不可预知的数字。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-7 22:37:51 | 显示全部楼层
Zhangchi 发表于 2015-5-6 23:11
前提声明: 我也是新手 猜的 。
    你输出的是a[111],应该就是 a数组首地址 的后 111 位 ,根据内存来看 ...

版主大大说我们初学的不需要知道怎么得到那个数的,只需要先学会常用的那些就OK拉!这个他们说是越界了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-5-8 08:24:20 | 显示全部楼层
前面的版主已经解释的很详细了,在这里我也不做过多的解释了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 23:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表