在申請內(nèi)存時總是申請固定大小的內(nèi)存,則稱此內(nèi)存是靜態(tài)分配的。前面提出的定義變量時,編譯器幫我們從棧上分配的內(nèi)存就屬于靜態(tài)分配
根據(jù)用戶輸入的不同而可能申請不同大小的內(nèi)存時,則稱此內(nèi)存是動態(tài)分配的,后面說的從堆上分配就屬于動態(tài)分配。
同樣,靜態(tài)分配的內(nèi)存利用率不高或運(yùn)用不夠靈活,但代碼容易編寫且運(yùn)行速度較快;動態(tài)分配的內(nèi)存利用率高,不過編寫代碼時要復(fù)雜些,需自己處理內(nèi)存的管理(分配和釋放)且由于這種管理的介入而運(yùn)行速度較慢并代碼長度增加。
靜態(tài)和動態(tài)的意義不僅僅如此,其有很多的深化,如硬編碼和軟編碼、緊耦合和松耦合,都是靜態(tài)和動態(tài)的深化。