1樓:
在所有函式外部定義的變數稱為全域性變數(global variable),它的作用域預設是整個程式,也就是所有的原始檔,包括 .c 和 .h 檔案。
例如:int a, b; //全域性變數
void func1( )
//todo:
float x,y; //全域性變數
int func2( )
//todo:
int main( )
//todo:
return 0;
a、b、x、y 都是在函式外部定義的全域性變數。c語言**是從前往後依次執行的,由於 x、y 定義在函式 func1() 之後,所以在 func1() 內無效;而 a、b 定義在源程式的開頭,所以在 func1()、func2() 和 main() 內都有效。
2樓:匿名使用者
在最開始所有函式(包括main函式)前宣告就行了,後面函式要用到就最好在各個函式裡說多一次,例如:extern int j;
3樓:匿名使用者
在main函式外定義,不用宣告的
4樓:匿名使用者
你只需要在main裡宣告就行了,後面就可以直接呼叫。
5樓:吳和城
在main函式外定義的,引用時不要宣告!
6樓:匿名使用者
#include
int j[100],n[100],k[100];//放到所用用到的函式的外面就行了
int main()
void fun_1()
void fun_2()
c語言中如何定義全域性變數
7樓:南京新華電腦專修學院
1、記住一條就夠了:在函式之外定義的變數就是全域性變數。用static修飾的變數可以是全域性的,也可以是區域性的,所以說「用static修飾的變數是全域性變數」是錯誤的。
用static修飾的變數的生命週期與全域性變數一樣,但可見性仍分全域性和區域性。
2、全域性變數在整個c檔案中都能使用,而區域性變數在其作用域內才能使用,舉個例子:12
3456
78910
11int f = 7;// 這個是全域性變數int myadd(int a, int b)int main(void)
8樓:人人哦哦哦課
1、首先,我們可以在函式外面定義變數,就是全域性變數。
2、區域性變數可以與全域性變數同樣命名。
3、但是優先順序是區域性變數優先。
4、但是區域性變數的生命週期是整個結構內。
5、全域性變數是整個程式結束,才釋放。
6、我們也可以為變數加上修飾符。
9樓:早早起床的寶
函式和變數都有宣告和定義兩個寫法。宣告的目的是告訴別的**這個變數的名稱,而定義比宣告多了一個功能,除了告知名稱以外,還會為這個變數分配記憶體。
對於函式來說,加不加extern都沒有關係,因為有函式體一定是定義,加extern也會被忽略,而沒有函式體的就是宣告,
int add(int a, int b); 等價於 extern int add(int a, int b);
int add(int a, int b) 等價於 extern int add(int a, int b)
如果是變數的話
int a; // 定義了一個變數a
extern int a; // 宣告瞭一個變數a
變數可以有任意個宣告,但是只能有一個定義,全域性變數定義在多個檔案中,只能有一個檔案中的不加extern,其餘的都必須加extern表示宣告。
10樓:匿名使用者
定義在函式體外部的變數叫全域性變數,
要定義全域性變數你只要把變數定義在
所有函式外部即可。
要注意的是,全域性變數只對它定義位
置以下的函式可見。
#include
void f1();
void f2();
int y=100;
int main()
int x;
void f1()
void f2()
11樓:gta小雞
全域性區只能寫宣告/定義語句,不能寫表示式。q=(struct time*)malloc(sizeof(struct time))這是一個表示式,必須放到函式內部。
12樓:紫月居士
全域性常量定義,在主函式體外部直接呼叫預處理命令#define 常量名 量值
引用時可以再任意函式體內直接呼叫該常量名
全域性變數定義,變數不存在全域性概念,只有相對概念。你可以通過宣告作用域來進行宣告。比如:
std::a。這就是一種。
13樓:匿名使用者
舉個例子
#include
int a =0;//這裡不就是定義了一個全域性變數a了嗎int main()
14樓:
如果全域性變數在同一個c檔案中,則可以直接去使用這個全域性變數,就像樓上(zsx10110)舉的那個例子一樣,但是在另外一個c 檔案中還想繼續使用這個變數的時候就需要使用extern來宣告引用這個全域性變數了,比如說你把全域性變數定義宣告在a.c檔案中的,你在b.c檔案中也想使用,則在裡面加上這句extern int a;(int a是你在a.
c中定義的,視實際情況而定)
C語言全域性變數的問題,怎麼看,c語言中全域性變數及輸出問題?
二者記憶體佔用方面沒什麼太大區別,都是在定義的時候就分配好全部的記憶體,並且是連續的記憶體分配。唯一的區別就是a 100 會多一個初始化的過程。其實,如果a 100 是全域性變數,定義的時候陣列的每個元素會自動初始化為0。如果是區域性變數的話,則不會自動初始化。這跟c語言對記憶體的管理有關。簡單點說...
c語言中定義有元素的整型陣列,C語言中,定義一個有100個元素的整型陣列inta100,然後用迴圈產生100個隨機數求大神幫助
include include int main 注意,編譯文 du件字尾必zhi須是.c檔案。希望採dao納 c語言如何srand和rand函式產生10個1 100內的隨機數 需要準備的材料分別有 電腦 c語言 編譯器。1 首先,開啟c語言編譯器,新建一個初回始.cpp檔案,例如答 test.cp...
c語言中什麼是原型定義,C語言中函式的定義格式是什麼,函式原型宣告的語法格式?
我還直是不知道呢,我說說自己的理解吧,一個函式,可能在別外被引用或是在本檔案中但是要先引用了而後面才有函式定義,此時編譯器需要先行知道這個函式返回型別和引數類形,才可以正確的幫著做嚴格的資料型別和引數個數的檢查 如不提前申明就會當做是返回int 型,引數都當int型且不能檢查引數個數 這個函式在定義...