黑马程序员技术交流社区

标题: 定义数组的问题 [打印本页]

作者: 完美世界    时间: 2014-6-24 08:44
标题: 定义数组的问题
#include <stdio.h>
int main()
{
   int s[0];
   s[2]=12;
   printf("数组s的大小是%d\n",sizeof(s));
   printf("s[2]=%d\n",s[2]);
}

输出结果是:
数组s的大小是0
s[2]=12

这段代码编译和运行都没有问题,但其中出现的问题我想大家都看出来了吧,有没有人知道缘由的?




作者: 魇影    时间: 2014-6-24 13:04
因为C语言的弱语法。。。在C语言中一般是不会检查数组的下标范围的,这样的好处是给了程序员很大的灵活性,更宜于写出高效的代码,当然这样也有很大风险,C语言强调逻辑大于强调语法,若是JAVA就会报错
作者: 完美世界    时间: 2014-6-24 14:27
魇影 发表于 2014-6-24 13:04
因为C语言的弱语法。。。在C语言中一般是不会检查数组的下标范围的,这样的好处是给了程序员很大的灵活性, ...

嗯,哦了。
谢啦!




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