C语言 内存管理之栈
內(nèi)存管理之棧
- 什么是棧
- 棧管理內(nèi)存的特點(diǎn)(小內(nèi)存、自動(dòng)化)
- 棧的應(yīng)用:局部變量
- 棧的約束
- 關(guān)于棧的感悟
什么是棧
1.棧是一種數(shù)據(jù)結(jié)構(gòu),C語言中使用棧來保存局部變量。棧是管理內(nèi)存的。
棧管理內(nèi)存的特點(diǎn)(小內(nèi)存、自動(dòng)化)
先進(jìn)后出 FILO 棧
先進(jìn)先出 FIFO 隊(duì)列
棧的特點(diǎn)是入口即出口,只有一個(gè)口,另一個(gè)口是堵死的,所以先進(jìn)去必須后出來。
隊(duì)列的特點(diǎn)是入口和出口都有,必須從入口進(jìn)去,從出口出來,所以先進(jìn)去的必須先出來,否則就堵住了后面的。
棧的應(yīng)用:局部變量
我們?cè)贑語言中定義一個(gè)局部變量時(shí)(int a),編譯器會(huì)在棧中分配一段空間(4字節(jié))來給這個(gè)局部變量用(分配時(shí)棧頂指針會(huì)移動(dòng)給出空間,給局部變量a用的意思就是,將這4字節(jié)的棧內(nèi)存地址和我們定義的局部變量名a給關(guān)聯(lián)起來),對(duì)應(yīng)棧的操作是入棧。注意:這里棧指針的移動(dòng)和內(nèi)存分配是自動(dòng)的,不用人來寫代碼干預(yù)。
然后等我們函數(shù)退出的時(shí)候,局部變量要滅亡。對(duì)應(yīng)棧的操作是彈棧(出棧)。出棧時(shí)也是棧頂指針移動(dòng)將棧空間中與a關(guān)聯(lián)的那4個(gè)字節(jié)空間釋放。這個(gè)動(dòng)作也是自動(dòng)的&
總結(jié)
以上是生活随笔為你收集整理的C语言 内存管理之栈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 想进电网,在贵大要选什么专业?
- 下一篇: C语言内存管理之结构体