1. 靜態內存
靜態內存是指在程序開始運行時由編譯器分配的內存,它的分配是在程序開始編譯時完成的,不占用CPU資源。
程序中的各種變量,在編譯時系統已經為其分配了所需的內存空間,當該變量在作用域內使用完畢時,系統會
自動釋放所占用的內存空間。
變量的分配與釋放,都無須程序員自行考慮。
eg:
基本類型,數組
2. 動態內存
用戶無法確定空間大小,或者空間太大,棧上無法分配時,會采用動態內存分配。
3. 區別
a) 靜態內存分配在編譯時完成,不占用CPU資源; 動態內存分配在運行時,分配與釋放都占用CPU資源。
b) 靜態內存在棧(stack)上分配; 動態內存在堆(heap)上分配。
c) 動態內存分配需要指針和引用類型支持,靜態不需要。
d) 靜態內存分配是按計划分配,由編譯器負責; 動態內存分配是按需分配,由程序員負責。