我们可以声明数组的大小为零吗?

时间:2019-01-20 05:57:49

标签: c compiler-errors

main()
{
    int x[0];
    scanf("%s",x);
   printf("%s",x);
} 

为什么当我输入qwerty79时该程序未显示任何错误,而此程序却给我输出qwerty79?

1 个答案:

答案 0 :(得分:-3)

在这种情况下,您声明具有0个成员的int x数组意味着它们没有为数组分配内存空间,并且它们不是内存位置名称x。因此,当您以整数形式输入字符串时,它们没有类型检查,另一个原因是编译器只知道有一些变量x但该类型未知,因为它们不是x的内存分配。因此,您的程序没有给出任何错误。有关详细信息 您必须阅读作为编译器设计主题一部分的编译过程状态理论。