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