[英]global definition of a variable in C
簡單來說,全局變量是在 main() 之外聲明或定義的變量,其作用域從定義點到程序結束。
我有幾個關於全局變量的問題。 我正在使用 GCC 編譯器。
#include<stdio.h>
int a,b;
a=b=1;
main()
{
printf("%d\n%d",a,b);
}
這個程序產生錯誤,而
#include<stdio.h>
int a,b;
main()
{
a=b=1;
printf("%d\n%d",a,b);
}
生成正確的輸出。為什么全局使用時不支持 a=b=1?
我還有一個問題要問。
#include<stdio.h>
a=1;
b=9;
c='c';
h='h';
main()
{
printf("%d\n%d\n",a,b);
printf("%c\t%c\n",c,h);
}
產生正確的結果並警告數據定義沒有類型或存儲類。 我完全對全局變量感到困惑。
線
a=b=1;
是一個statement ,在全局范圍內你不能有語句,只有聲明和定義。
當你做
a=1;
您將變量a
隱式定義為int
,然后將其初始化為值1
。 這只能在全局范圍內完成,但不要這樣做,因為它會引起很多混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.