亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于數據結構的堆棧,和內存空間的堆棧有什么區別和關系嗎?

關于數據結構的堆棧,和內存空間的堆棧有什么區別和關系嗎?

數據結構的堆棧,和內存空間的堆棧有什么區別和關系嗎?
查看完整描述

2 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

數據結構中的一般稱“棧(stack)”,是一種后進先出的數據結構。它是一種概念,或者說是一種邏輯技術,與語言、平臺無關。
內存管理中的“堆?!逼鋵嵤欠譃槎?heap)和棧(stack)的,以引用變量為例,引用變量本身存儲在棧中,引用變量指向的值存儲在堆中。
如int[] arr = {1, 2, 3};
變量arr(數組名)存儲在棧中,變量arr的值(數組元素)存儲在堆中(普通結構)。
內存管理中的棧采用的就是數據結構中的棧的思想,即遵循后進先出的管理方法。
好比數據結構中的棧是一項先進的技術,在內存管理中采用了該技術,在CPU的調度中可能也采用這種技術。

查看完整回答
反對 回復 2019-09-14
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

在編寫程序時(比如C、C++等),可以簡單地把內存分為三個不同的區域:
1、棧,即我們平常說的堆棧,英文為stack,存放自動變量、函數調用產生的臨時變量等,該內存空間由編譯器自動分配、釋放以及管理,訪問效率高,但不靈活,空間也小。
2、堆,英文為heap,該內存空間需要程序員手動申請、釋放,如C的malloc、free以及C++的new、delete等,平常說的內存泄露就是操作堆引起的,由于需要手動管理,所以訪問效率較低,但可以根據需要靈活使用。
3、靜態存儲區,也是編譯器自動管理的,用于存放全局變量、局部靜態變量等,與棧中變量的區別是在程序運行期間一直保存變量的值。

查看完整回答
反對 回復 2019-09-14
  • 2 回答
  • 0 關注
  • 1110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號