區域性變數和全域性變數的區別
在這篇文章中,我們將瞭解區域性變數和全域性變數之間的區別。
區域性變數
它通常在函式內部宣告。
如果它沒有被初始化,則會儲存一個垃圾值。
它在函式開始執行時建立。
函式終止時它會被銷燬。
由於區域性變數/資料只能被單個函式訪問,因此無法共享資料。
需要將引數傳遞給區域性變數,以便它們能夠在函式中訪問該值。
它儲存在棧上,除非另有說明。
可以使用宣告它們的函式內部的語句來訪問它們。
當在函式中對區域性變數進行更改時,這些更改不會反映在其他函式中。
可以使用宣告它們的函式內部的語句來訪問區域性變數。
示例
以下是一個示例:
#include <stdio.h> int main () { /* local variable declaration */ int a, b; int c; /* actual initialization */ a = 10; b = 20; c = a + b; printf ("value of a = %d, b = %d and c = %d
", a, b, c); return 0; }
全域性變數
它在函式外部宣告。
如果它沒有被初始化,則預設情況下會儲存值為零。
它在程式全域性執行之前建立。
程式終止時它會被銷燬。
由於多個函式可以訪問全域性變數,因此可以共享資料。
它們在整個程式中可見,因此不需要傳遞引數。
可以使用程式中的任何語句來訪問它。
它儲存在程式內部的特定位置,該位置由編譯器決定。
當在一個函式中對全域性變數進行更改時,這些更改也會反映在程式的其他部分。
示例
以下是一個示例:
#include /* global variable declaration */ int g; int main () { /* local variable declaration */ int a, b; /* actual initialization */ a = 10; b = 20; g = a + b; printf ("value of a = %d, b = %d and g = %d
", a, b, g); return 0; }
廣告