黑马程序员技术交流社区

标题: 关于C语言中数组赋值的一点儿疑惑 [打印本页]

作者: baye1992    时间: 2016-2-26 09:15
标题: 关于C语言中数组赋值的一点儿疑惑
#include <stdio.h>
void main()
{
        int a[2]={1,2};
        a[4]=4;
        printf("a[0]=%d,a[1]=%d,a[2]=%d,a[3]=%d,a[4]=%d,a[5]=%d\n",a[0],a[1],a[2],a[3],a[4],a[5]);
}
在定义了数组a[2]后,为什么还能定义不在其中的元素a[4]?而未曾定义的元素a[2],a[3],a[5]为什么能直接打印?


作者: sunnysun    时间: 2016-2-26 12:20
你这样已经越界了,虽然编译器不一定会报错,这就涉及到内存的问题了,但是这本身就是个错误。
作者: baye1992    时间: 2016-3-1 10:14
sunnysun 发表于 2016-2-26 12:20
你这样已经越界了,虽然编译器不一定会报错,这就涉及到内存的问题了,但是这本身就是个错误。 ...

懂了,O(∩_∩)O谢谢
作者: sunnysun    时间: 2016-3-1 12:11
baye1992 发表于 2016-3-1 10:14
懂了,O(∩_∩)O谢谢

不客气,我说的也不详细,建议你有些问题可以直接去问度娘或者谷歌,这样等也未必有人回答
作者: 米阳    时间: 2016-3-1 17:08
进来看看 , 确实和越界有关 , 但我也记得不详细了
作者: dx206    时间: 2016-3-1 17:21
这样写还是不要的,平常还是正常写




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2