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 釋義 人生苦短 現實主義的解釋為,人生又苦又短,得意之時應該盡情發揮,以免時運過去之後,只剩下痛苦,連回憶都沒有留下。說人這一輩子就活幾十年的光景,請珍惜眼前的一切。還有後半句,為歡幾何。造...