main()
{
int x[0];
scanf("%s",x);
printf("%s",x);
}
为什么当我输入qwerty79时该程序未显示任何错误,而此程序却给我输出qwerty79?
答案 0 :(得分:-3)
在这种情况下,您声明具有0个成员的int x数组意味着它们没有为数组分配内存空间,并且它们不是内存位置名称x。因此,当您以整数形式输入字符串时,它们没有类型检查,另一个原因是编译器只知道有一些变量x但该类型未知,因为它们不是x的内存分配。因此,您的程序没有给出任何错误。有关详细信息 您必须阅读作为编译器设计主题一部分的编译过程状态理论。