1.實驗環境
1.ubuntu20全域性變數、靜態區域性變數儲存在全域性資料區,初始化的和未初始化的分別儲存在一起。普通區域性變數儲存在堆疊中。
在c\c++中,通常可以把記憶體理解為4個分割槽:棧、堆、全域性/靜態儲存區和常量儲存區
1.記憶體棧區stack: 存放區域性變數名;2.原始碼haha.c2.記憶體堆區heap: 存放new或者malloc出來的物件;
3.text & data & bss:**段與靜態分配
4.bss區(未初始化資料段):並不給該段的資料分配空間,僅僅是記錄了資料所需空間的大小。
5.data(初始化的資料段):為資料分配空間,資料儲存在目標檔案中。
#include #include #include void before()
char g_buf[16];
char g_buf2[16];
char g_buf3[16];
char g_buf4[16];
char g_i_buf="123";
char g_i_buf2="123";
char g_i_buf3="123";
void after()
int main(int argc, char **ar**)
return 0;
}
3.效果 全域性變數 區域性變數 棧 堆
一般全域性變數存放在資料區,區域性變數存放在棧區,動態變數存放在堆區,函式 放在 區。棧區是普通的棧資料結構,遵循lifo後進先出的規則,區域性變數安排在那裡是asm時就規定的,這樣可以在乙個函式結束後平衡堆疊,操作簡單,效率高 堆 動態區 在這裡應當叫堆疊 不要和資料結構中的堆搞混 是程式在編譯時...
c 全域性變數 區域性變數
全域性變數即在函式外宣告的變數,區域性變數即在函式內部宣告的變數,例如 include float num 3.14 乙個名為num的全域性變數 void main float num 2.45 乙個名為num的區域性變數 cout3.14 當區域性變數和全域性變數同名時,在區域性變數作用域內使用該...
c 全域性變數,區域性變數
區域性變數又稱內部變數,是函式內部定義的變數,作用域在定義其的函式內部 全域性變數又稱外部變數,作用於是從其定義開始一直到源程式結束 不論是全域性變數還是區域性變數都是乙個空間上的範圍,即作用域 相對於變數的空間範圍,靜態和動態變數則指乙個時間上的範圍,所謂靜態變數就是在定義時分配固定儲存單元,知道...