鱼C论坛

 找回密码
 立即注册
查看: 1973|回复: 15

[已解决]关于C语言中数组的疑问

[复制链接]
发表于 2020-5-6 14:22:10 | 显示全部楼层 |阅读模式

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

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

x
为什么我写这样的数组显示
# include<stdio.h>

int main(void)
{
        int a[5] = {0,1,2,3,4,5};
        int i ;
       

        printf("%d\n",a[1]);

       
       
       
        return 0;
}
会显示错误?数组不能包含0吗?有没有大神可以解惑一下。
最佳答案
2020-5-6 14:36:35
jjboy 发表于 2020-5-6 14:36
我知道原因了,可能是因为我的元素超出了我定义数组的数量,谢谢

那就设个最佳答案吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 14:24:48 | 显示全部楼层
并不是,是因为数组是以0开始索引的,你想要打印第一个元素,得用a[0]。
P.S: 你的数组越界了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:25:09 | 显示全部楼层
估计是给的警告,未被引用的局部变量 i
直接忽略即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:25:52 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-6 14:25
估计是给的警告,未被引用的局部变量 i
直接忽略即可

TA的数组越界了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 14:26:26 | 显示全部楼层
qiuyouzhi 发表于 2020-5-6 14:24
并不是,是因为数组是以0开始索引的,你想要打印第一个元素,得用a[0]。
P.S: 你的数组越界了

我知道从a[0]才代表数组中的第一个元素。我只是不明白为什么a[0] = 0这么写是不对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:27:14 | 显示全部楼层


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

使用道具 举报

发表于 2020-5-6 14:27:45 | 显示全部楼层
jjboy 发表于 2020-5-6 14:26
我知道从a[0]才代表数组中的第一个元素。我只是不明白为什么a[0] = 0这么写是不对的

正确的呀
估计是因为你定义了一个i,却没有用,编译器给的警告吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:28:08 | 显示全部楼层
jjboy 发表于 2020-5-6 14:26
我知道从a[0]才代表数组中的第一个元素。我只是不明白为什么a[0] = 0这么写是不对的

5个元素的数组扔进去了6个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 14:29:11 | 显示全部楼层
错的地方应该是我的数组的元素中出现了0.
   也就是为什么 a【0】= 0 是错误的,a【0】不也是也个变量吗,我给他赋值0,为什么就报错呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 14:30:44 | 显示全部楼层
qiuyouzhi 发表于 2020-5-6 14:27
正确的呀
估计是因为你定义了一个i,却没有用,编译器给的警告吧

不是呢,我把0移除就不会报错,也不会警告, 最主要的问题出在我的元素中有0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:31:48 | 显示全部楼层
jjboy 发表于 2020-5-6 14:30
不是呢,我把0移除就不会报错,也不会警告, 最主要的问题出在我的元素中有0
# include<stdio.h>

int main(void)
{
        int a[5] = {0, 1, 2, 3,4};
        a[0] = 0;
        printf("%d\n",a[0]);
       
       
       
        return 0;
}

这段代码在Dev-C++上没有任何异常
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 14:36:00 | 显示全部楼层
qiuyouzhi 发表于 2020-5-6 14:31
这段代码在Dev-C++上没有任何异常

我知道原因了,可能是因为我的元素超出了我定义数组的数量,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:36:35 | 显示全部楼层    本楼为最佳答案   
jjboy 发表于 2020-5-6 14:36
我知道原因了,可能是因为我的元素超出了我定义数组的数量,谢谢

那就设个最佳答案吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:37:22 | 显示全部楼层
数组越界,元素比定义的长度还大。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:41:55 | 显示全部楼层
qiuyouzhi 发表于 2020-5-6 14:36
那就设个最佳答案吧~

你是不是可以自己设了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:56:20 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-6 14:41
你是不是可以自己设了

不可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 18:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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