简单地说,全局变量是在main()外部声明或定义的变量,其范围从定义点到程序结束。
我有几个关于全局变量的问题。我使用的是GCC编译器。
#include<stdio.h>
int a,b;
a=b=1;
main()
{
printf("%dn%d",a,b);
}
此程序在时生成错误
#include<stdio.h>
int a,b;
main()
{
a=b=1;
printf("%dn%d",a,b);
}
生成正确的输出。为什么全局使用时不支持a=b=1?
我还有一个问题要问。
#include<stdio.h>
a=1;
b=9;
c='c';
h='h';
main()
{
printf("%dn%dn",a,b);
printf("%ct%cn",c,h);
}
生成正确的结果,并警告数据定义没有类型或存储类。我对全局变量完全感到困惑。
行
a=b=1;
是语句,在全局范围内不能有语句,只能有声明和定义。
当你做
a=1;
将变量a
隐式定义为int
,然后将其初始化为值1
。这只能在全球范围内进行,但不要这样做,因为这会引起很多混乱。