何謂堆疊指標述其作用與特點

2025-07-18 20:45:13 字數 2658 閱讀 8785

1樓:網友

棧(stack)是一種線性結構。由編譯器自動分配釋放,存放函式的引數值,區域性變數,本地變數的值等。其操作方式類似於資料結構中的棧。

堆(heap)是一種鏈式結構。一般由程式設計師分配釋放,若程式設計師不釋放,則會造成記憶體洩漏。注意它與資料結構中的堆是兩回事。

其實指標就像是其它變數一樣,所不同的是一般的變數包含的是實際的真實的資料,而指標是乙個指示器,它告訴程式在記憶體的哪塊區域可以找到資料。指標是乙個資料型別,本身也需要佔用四個位元組的儲存空間。.所以用sizeof(void*)獲得的值為。

堆疊指標的作用是什麼

2樓:網友

堆疊指標sp就是指出棧頂在內部ram塊中的位置,從它可以瞭解到存放斷點或者現場的位置,壓棧後sp+1,出棧後sp-1。

堆疊指標sp的作用?

3樓:網友

在x86體系結構中,堆疊可以由硬體實現。

sp是乙個儲存堆疊棧頂的暫存器。

具體的工作過程是(以16位的8086為例):

push: sp=sp-2 , 資料存入ss:sp和ss:(sp+1)

pop : sp=sp+2

4樓:網友

本身就是乙個普通暫存器,但是和棧相關的指令(push pop call ret等)寫死了所以用來操作棧。

有沒有可以通俗解釋堆疊指標的意思呢?書上說的堆疊指標聽不懂,,,唉,

5樓:匿名使用者

這些涉及到記憶體知識。

例如 main呼叫乙個函式funa,機器就要為funa管理記憶體,把funa的記憶體劃分出來(先進)

然後,funa呼叫到另外乙個函式funb,機器就又劃分一塊記憶體(後進)

最後,機器釋放記憶體的時候,是先釋放funb的記憶體再釋放funa當然還有變數傳遞,引數等。

有些新手把變數通過引數傳到函式,然後返回結果,經常會違反了堆疊的規則,所以是返回不到值的。

6樓:風若遠去何人留

堆疊就是乙個桶,資料就是乙個個圓餅。

乙個個放進去,每個都在前乙個上面,不存在重疊。

入棧就是放餅進去。必須放在最上面。

出棧就是拿餅出來。必須從最上面拿。

堆疊指標,就是告訴你最上面的餅在哪個位置,不然你會拿錯。

7樓:做而論道

資料存放的順序是,後進先出,如此而已。

8樓:網友

就像往乙個筒子裡裝球,只有一端開口,一次取乙個或者拿乙個。

堆疊指標sp的內容是?

9樓:勇敢

sp指棧頂內容。使用堆疊時,一般需要重新設定sp的初始值。以為系統復位或上電時,sp的值為07h。

微控制器 壓棧 彈棧 堆疊指標什麼意思

10樓:生活如歌

壓棧(入棧)push指令,將資料儲存在特定儲存區內,按先進後出,後進先出原則儲存。

彈棧(出棧)pop指令,將儲存在堆疊中的數取出來,也是按先進後出,後進先出原則取數。

指標可以理解成用來指揮入棧出棧的乙個通道,所有數的出入均由指標來指定。

11樓:雅寧姐對不起

子彈,彈夾知道不,堆疊也就類似於彈夾,那資料就類似於子彈,先壓進去的後出來,後壓進去的先出來,指標始終指向棧頂。對於堆疊沒有什麼確定的定義,一般書上都是說「一段滿足先進後出,後進先出的資料段」

12樓:網友

後進先出的資料結構,屬資料結構概念。

13樓:彌久墨香

程式的執行是按順序執行的,當你的應用程式中有分支或中斷子程式時,在微控制器響應中斷從主程式中跳轉到中斷程式,則程式指標pc(順序號)也就變了,當子程式執行完,程式就不能自動回到原來從主程式跳轉出來的位置繼續執行主程式。

因此,在進入子程式時有時需要壓棧(就是把執行子程式之前的那個主程式位址儲存),當執行完子程式,再彈棧(就是把被儲存主程式埠位址重新送到pc),以便返回主程式斷點繼續執行文執行完的主程式。

設定堆疊指標sp=30h後,進行一系列的堆疊操作。當進棧資料全部彈出後,sp應指向?

14樓:手機使用者

是下一條指令位置。

這樣在函式呼叫返回時,可以回到該位置。

回補充:其中37是堆疊位置,當加入了pc值後,棧頂自然就會變了。

stack: 37 ..

38:39 pc

你這個問題是微控制器51的吧,51的pc暫存器是兩個位元組的,所以需要加2...

當堆疊指標sp=7fh時,實際的堆疊會從什麼位址開始呢?

15樓:網友

7f 是棧頂單元的位址;

堆疊起始位址在 ss:sp

16樓:網友

額,要虛擬位址轉換成實體地址吧, sp是棧的起始位址。

17樓:網友

mcs-51系列微控制器的初始值為07h,若不重新設定將從08h開始。

18樓:網友

這個不清楚,屬於水貼。

堆疊一般用來存放什麼內容,為什麼要用堆疊,什麼是堆疊

sp是堆疊指bai示器 bp是基址指示器du sp,bp一般與段寄存zhi器ss 聯用,以確定堆dao棧暫存器中某一單元的地址,專sp用以指示棧頂的偏屬移地址,而bp可 作為堆疊區中的一個基地址,所以通常堆疊的資料區基地址是放在bp中 函式呼叫的引數 函式的返回地址 區域性變數 為什麼要用堆疊,什麼...

java佇列堆疊怎麼用

常見資料結bai 構dua 棧zhi 先進後出 b 佇列 先進先出 c 陣列dao 查詢快,專增刪慢 d 連結串列 屬 查詢慢,增刪快 list的子類特點 面試題 arraylist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,效率高。vector 底層資料結構是陣列,查詢快,增刪慢。執行緒安...

何謂人生苦短,何謂 人生苦短 白駒過隙

人生苦短 的意思是說苦於人生太短,苦於人生過於短暫。沒有好好珍惜時間。拼音 r n sh ng k du n 釋義 人生苦短 現實主義的解釋為,人生又苦又短,得意之時應該盡情發揮,以免時運過去之後,只剩下痛苦,連回憶都沒有留下。說人這一輩子就活幾十年的光景,請珍惜眼前的一切。還有後半句,為歡幾何。造...