例子:fibonacci數列
如果將乙個變數定義為區域性變數,比如i在這個**裡:
#include
int f[1000];
void fibonacci(int n)
printf("%d ", i);
}int main(void)
注意這裡的i,是區域性變數,因此每乙個i只對其所在函式內負責,此時可以出現正確的結果。
如果將乙個變數定義為全域性變數,比如i在這個**裡:
#include
int f[1000];
int i;
void fibonacci(int n)
printf("%d ", i);
}int main(void)
此時則不能出現正確結果,因為i是全域性變數,呼叫fibonacci函式後,i在迴圈中發生了變化,不再是輸入的i的值。 全域性變數與區域性變數的區別
全域性變數與區域性變數的區別 變數的分類 變數可以分為 全域性變數 靜態全域性變數 靜態區域性變數和區域性變數。按儲存區域分,全域性變數 靜態全域性變數和靜態區域性變數都存放在記憶體的靜態儲存區域,區域性變數存放在記憶體的棧區。按作用域分,全域性變數在整個工程檔案內都有效 靜態全域性變數只在定義它的...
區域性變數與全域性變數
根據c語言的說法,區域性變數 定義在方法內部的變數叫區域性變數 全域性變數 定義在方法外部的變數叫全域性變數。區域性變數和全域性變數的主要區別在於二者的生存週期不同。全域性變數的生存週期 靜態分配記憶體,程式執行期間常駐記憶體,直到程式執行結束。區域性變數的生存週期 動態分配記憶體,位於執行緒堆疊中...
全域性變數與區域性變數
區域性變數 在區域性 塊內定義 作用域在區域性 塊內,生命週期在區域性 塊內,結束時銷毀。include void test int main return 0 輸出 1111111111 全域性變數 在所有 塊外定義 作用域是整個工程,生命週期程式開始至結束。工程test 10 10 原始檔sum...