A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#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]为什么能直接打印?

5 个回复

倒序浏览
你这样已经越界了,虽然编译器不一定会报错,这就涉及到内存的问题了,但是这本身就是个错误。
回复 使用道具 举报
sunnysun 发表于 2016-2-26 12:20
你这样已经越界了,虽然编译器不一定会报错,这就涉及到内存的问题了,但是这本身就是个错误。 ...

懂了,O(∩_∩)O谢谢
回复 使用道具 举报
baye1992 发表于 2016-3-1 10:14
懂了,O(∩_∩)O谢谢

不客气,我说的也不详细,建议你有些问题可以直接去问度娘或者谷歌,这样等也未必有人回答
回复 使用道具 举报
进来看看 , 确实和越界有关 , 但我也记得不详细了
回复 使用道具 举报
dx206 来自手机 中级黑马 2016-3-1 17:21:44
地板
这样写还是不要的,平常还是正常写
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马