c語言基礎 全域性變數 區域性變數 靜態變數

2021-10-24 08:36:47 字數 1089 閱讀 3320

不包含在任意函式內,檔案內定義的從定義開始到檔案結束都有效的變數

存放在記憶體當中,如果沒有初始化,初值為0

#include

void fun(void);

int a;

int main(void)

void fun(void)

在**段{}內定義的變數叫做區域性變數,作用範圍只限於**段

區域性變數在c語言當中定義都放在{}的執行語句之前

區域性變數存放在堆疊,用完就釋放,如果沒有賦初值,初值為未知

#include

void fun(void);

int main(void)

return 0;

}void fun(void)

不在同乙個作用域,可以定義相同名稱的變數

區域性變數可不可以和全域性變數重名

#include

void fun(void);

int a;

int main(void)

}getchar();

return 0;void fun(void)

全域性變數和區域性變數名稱相同,只要在區域性變數的作用域,都會使用區域性變數

#include

void fun(void);

int a;

int main(void)

}printf("%d\n",a);

getchar();

return 0;

}void fun(void)

1)宣告變數只在當前檔案內有效

2)靜態變數會儲存上一次呼叫後的結果

靜態變數儲存在記憶體中,如果沒有賦初值,初值為0

區域性靜態變數和全域性靜態變數

#include 「stdio.h」

int counter(int i)

int main(void)

宣告在別的檔案內使用的變數,不是當前檔案內定義的變數

xyd.cpp:

int xydzz = 5;

test.cpp:

#include 「stdio.h」

extern int xydzz;

int main(void)

全域性變數 靜態全域性變數 靜態區域性變數 區域性變數

全域性和靜態變數都在堆裡。這句話應該錯了,應該是放在常量資料段 全域性變數的作用範圍是整個程式 如果程式是多個檔案,必須在其他的檔案中說明 靜態變數的作用範圍要看靜態變數的位置,如果在函式裡,則作用範圍 就是這個函式。靜態全域性變數,只在本檔案可以用,雖然整個程式包含多個檔案,但靜態全域性變數只能用...

全域性變數 靜態全域性變數 靜態區域性變數 區域性變數

全域性和靜態變數都在堆裡。全域性變數的作用範圍是整個程式 如果程式是多個檔案,必須在其他的檔案中說明 靜態變數的作用範圍要看靜態變數的位置,如果在函式裡,則作用範圍 就是這個函式。靜態全域性變數,只在本檔案可以用,雖然整個程式包含多個檔案,但靜態全域性變數只能用在定義它的那個檔案裡,卻不能用在程式中...

全域性變數 靜態全域性變數區域性變數 靜態區域性變數

對於乙個完整的程式,在記憶體中的分布情況如下圖 區 low address 全域性資料區 堆區 棧區 high address 一般程式把新產生的動態資料存放在堆區,函式內部的自動變數存放在棧區。自動變數一般會隨著函式的退出而釋放空間,靜態資料 即使是函式內部的靜態區域性變數 也存放在全域性資料區。...