資料介紹
在計(jì)機(jī)領(lǐng)域,堆棧是一個(gè)不容忽視的概念,我們編寫的C語言程序基本上都要用到。但對于很多的初學(xué)著來說,堆棧是一個(gè)很模糊的概念。堆棧:一種數(shù)據(jù)結(jié)構(gòu)、一個(gè)在程序運(yùn)行時(shí)用于存放的地方,這可能是很多初學(xué)者的認(rèn)識,因?yàn)槲以?jīng)就是這么想的和匯編語言中的堆棧一詞混為一談。我身邊的一些編程的朋友以及在網(wǎng)上看帖遇到的朋友中有好多也說不清堆棧,所以我想有必要給大家分享一下我對堆棧的看法,有說的不對的地方請朋友們不吝賜教,這對于大家學(xué)習(xí)會有很大幫助。

首先了解下計(jì)算機(jī)C語言中各個(gè)變量的存放區(qū)域:
代碼區(qū)(CODE): 存放函數(shù)代碼;
靜態(tài)數(shù)據(jù)區(qū)(DATA): 存放全局變理/靜態(tài)變量;
堆區(qū)(HEAP): 是自由存儲區(qū),存放動態(tài)數(shù)據(jù),像new,malloc()申請的空間就是堆區(qū)的;
棧區(qū)(STACK): 存放臨時(shí)/局部變量。
數(shù)據(jù)結(jié)構(gòu)的棧和堆
首先在數(shù)據(jù)結(jié)構(gòu)上要知道堆棧,盡管我們這么稱呼它,但實(shí)際上堆棧是兩種數(shù)據(jù)結(jié)構(gòu):堆和棧。堆和棧都是一種數(shù)據(jù)項(xiàng)按序排列的數(shù)據(jù)結(jié)構(gòu)。
棧就像裝數(shù)據(jù)的桶或箱子
我們先從大家比較熟悉的棧說起吧,它是一種具有 后進(jìn)先出 性質(zhì)的數(shù)據(jù)結(jié)構(gòu),也就是說后存放的先取,先存放的后取。這就如同我們要取出放在箱子里面底下的東西(放入的比較早的物體),我們首先要移開壓在它上面的物體(放入的比較晚的物體)。
堆像一棵倒過來的樹
而堆就不同了,堆是一種 經(jīng)過排序的樹形數(shù)據(jù)結(jié)構(gòu) ,每個(gè)結(jié)點(diǎn)都有一個(gè)值。通常我們所說的堆的數(shù)據(jù)結(jié)構(gòu),是指二叉堆。堆的特點(diǎn)是根結(jié)點(diǎn)的值最小(或最大),且根結(jié)點(diǎn)的兩個(gè)子樹也是一個(gè)堆。由于堆的這個(gè)特性,常用來實(shí)現(xiàn)優(yōu)先隊(duì)列, 堆的存取是隨意 ,這就如同我們在圖書館的書架上取書,雖然書的擺放是有順序的,但是我們想取任意一本時(shí)不必像棧一樣,先取出前面所有的書,書架這種機(jī)制不同于箱子,我們可以直接取出我們想要的書。
- EE-62:在C語言中訪問短字內(nèi)存
- 基于VHDL語言中數(shù)字鐘的整點(diǎn)報(bào)時(shí)源代碼下載 2次下載
- 51單片機(jī)實(shí)戰(zhàn)教程之C語言基礎(chǔ)(四 C語言變量定義)
- C語言中的__attribute__宏定義之section屬性
- 【串口屏LUA教程】Lua腳本語言中文教程
- 堆棧在C語言中的定義(單片機(jī)的中堆棧相當(dāng)于棧)資料下載
- C語言中的文件包含詳細(xì)資料總結(jié)
- 單片機(jī)C語言中如何使用nop函數(shù)進(jìn)行短延時(shí)的效果資料和程序說明 10次下載
- C語言入門教程之堆棧的詳細(xì)資料概述 12次下載
- C51單片機(jī)C語言與標(biāo)準(zhǔn)C語言有什么區(qū)別? 134次下載
- C語言教程之C語言中級培訓(xùn)教程—預(yù)處理電子課件免費(fèi)下載 0次下載
- C語言中的關(guān)鍵字 3次下載
- C語言和匯編語言混合編程方法和C語言中斷處理方法 36次下載
- C語言中指針的介紹非常詳細(xì) 57次下載
- MSP430 C語言編程的程序堆棧溢出分析
- C語言中的socket編程基礎(chǔ) 2k次閱讀
- C語言中最常見的宏定義寫法 1.1k次閱讀
- c語言中從左到右結(jié)合怎么看 2.5k次閱讀
- 介紹C語言中錯(cuò)誤處理和異常處理的一些常用的方法和策略 1.4k次閱讀
- C語言中結(jié)構(gòu)體能不能相加 2k次閱讀
- 如何給C語言中的函數(shù)定義兩個(gè)不同的名字? 1.5k次閱讀
- Rust語言中的反射機(jī)制 3.8k次閱讀
- C語言定義字符串的幾種方法 4.4k次閱讀
- C語言中的不完整類型是什么 2.1k次閱讀
- C語言中必須要掌握的位運(yùn)算操作 3k次閱讀
- 在標(biāo)準(zhǔn)C語言中編譯出來的可執(zhí)行程序 2.6k次閱讀
- C語言中的goto語句怎么用?為什么反對使用 7.4k次閱讀
- C語言中變量和常量的關(guān)系 3.3k次閱讀
- 在C語言中,如何分配浮點(diǎn)數(shù)的存儲方式? 8.7k次閱讀
- 基于C語言中指針的基本用法解析 5.2k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 3次下載 | 10 積分
- 2【開源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門學(xué)習(xí)資源包
- 10.55 MB | 2次下載 | 免費(fèi)
- 3MDD品牌三極管S9018數(shù)據(jù)手冊
- 2.40 MB | 1次下載 | 免費(fèi)
- 4AN2606_STM32單片機(jī)系統(tǒng)內(nèi)存啟動方式應(yīng)用筆記
- 4.61 MB | 次下載 | 3 積分
- 5STM32WB 系列微控制器 OTA 和無線固件更新應(yīng)用筆記
- 1.98 MB | 次下載 | 2 積分
- 6LAT1178+關(guān)閉 SPI 會導(dǎo)致 WRPERR 錯(cuò)誤的問題分析應(yīng)用筆記
- 0.47 MB | 次下載 | 3 積分
- 7PL4807 單節(jié)鋰離子電池充電器數(shù)據(jù)手冊
- 3.55 MB | 次下載 | 免費(fèi)
- 8JZ4056H高耐壓30V單節(jié)線性1A鋰電池充電管理參考設(shè)計(jì)
- 2.74 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 24次下載 | 免費(fèi)
- 3蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 6次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 5冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 3次下載 | 10 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8【開源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門學(xué)習(xí)資源包
- 10.55 MB | 2次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論