堆和棧的區(qū)別有哪些?
靜珊桑
經(jīng)常所說的堆棧堆棧是堆和棧統(tǒng)稱,堆是堆,棧是棧,合在一起統(tǒng)稱堆棧。那么究竟堆和棧的區(qū)別有哪些呢?
1、申請(qǐng)方式的不同。棧由系統(tǒng)自動(dòng)分配,而堆是人為申請(qǐng)開辟;
2、申請(qǐng)大小的不同。棧獲得的空間較小,而堆獲得的空間較大;
3、申請(qǐng)效率的不同。棧由系統(tǒng)自動(dòng)分配,速度較快,而堆一般速度比較慢;
4、存儲(chǔ)內(nèi)容的不同。棧在函數(shù)調(diào)用時(shí),函數(shù)調(diào)用語句的下一條可執(zhí)行語句的地址第一個(gè)進(jìn)棧,然后函數(shù)的各個(gè)參數(shù)進(jìn)棧,其中靜態(tài)變量是不入棧的。而堆一般是在頭部用一個(gè)字節(jié)存放堆的大小,堆中的具體內(nèi)容是人為安排;
5、底層不同。棧是連續(xù)的空間,而堆是不連續(xù)的空間。
以上就是給各位帶來的關(guān)于堆和棧的區(qū)別有哪些的全部?jī)?nèi)容了。