簡體   English   中英

C中變量的全局定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM