全域性變數與區域性變數的區別

2021-08-09 04:24:43 字數 492 閱讀 3096

例子: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...