我对以下声明有些怀疑:
C允许在第一次声明时再次声明全局变量 不会初始化变量。
请考虑以下代码段:
#include<stdio.h>
int x; //line 1
int x = 5; //line 2
int main(void)
{
printf("%d", x);
return 0;
}
输出:5
Q1。在第1行中,x的第一个声明默认将全局变量x初始化为0。那为什么编译器不会抛出任何错误? 如果我将第1行和第2行重写为:
int x=10;
int x=20;
上述代码段会导致错误,例如重新定义&#39; x&#39;。我不能为以下内容得到相同的错误,因为默认情况下,x被初始化为0?
int x;
int x=5;
Q2。第1行和第2行都定义全局变量x。这个陈述是否正确?我已经读过,我们只能定义一次变量,但我们可以根据需要多次声明它。