如何理解棧的生長方向

如何理解棧的生長方向

棧頂是向着內存低地址方向生長的,定義一個棧底是高地址,包括全局變量和常量等,自然和正常的代碼段類似,從低地址往高地址寫,每次壓一個數據入棧,而堆的定義並不像棧那樣嚴格。堆一般是數據段,棧的生長方向的關鍵就是棧的定義。

棧又名堆棧,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱爲棧頂,相對地,把另一端稱爲棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成爲新的棧頂元素。從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成爲新的棧頂元素。棧作爲一種數據結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照先進後出的原則存儲數據,先進入的數據被壓入棧底,最後的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據。棧具有記憶作用,對棧的插入與刪除操作中,不需要改變棧底指針