考虑以下两个程序:

// Program 1
int main()
{
   int x;
   int x = 5;
   printf("%d", x);
   return 0;
}

以C输出:

重新声明'x'没有联系
// Program 2
int x;
int x = 5;
int main()
{
   printf("%d", x);
   return 0;
}

以C输出:

在C中,第一个程序在编译时失败,但第二个程序工作正常。在C ++中,两个程序都在编译时失败。


C允许在第一个声明未初始化变量时再次声明全局变量。

由于全局变量在第一个声明本身中初始化,因此以下程序在C中都失败。

int x = 5;
int x = 10;
int main()
{
   printf("%d", x);
   return 0;
}

输出:

 错误:重新定义'x'
C中全局变量的重新声明-IDC帮帮忙