<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 堆棧以及堆和棧的區別

堆棧以及堆和棧的區別

作者: 時(shí)間:2011-09-20 來(lái)源:網(wǎng)絡(luò ) 收藏

  是一個(gè)"后進(jìn)先出"的主存區域,位于段中,使用SS段寄存器記錄其段地址。它只有一個(gè)出入口,即當前棧頂,棧頂是地址較小 的一端(低端),它用堆棧指針寄存器SP指定。堆棧有兩種以字為單位的基本操作,對應兩條基本指令:進(jìn)棧指令PUSH和出棧指令POP。

  的區別  

  一、預備知識—程序的內存分配

  一個(gè)由C/C++編譯的程序占用的內存分為以下幾個(gè)部分

  1、棧區(stack)— 由編譯器自動(dòng)分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類(lèi)似于數據結構中的棧。

  2、堆區(heap) — 一般由程序員分配釋放, 若程序員不釋放,程序結束時(shí)可能由OS回收 。注意它與數據結構中的堆是兩回事,分配方式倒是類(lèi)似于鏈表。

  3、全局區(靜態(tài)區)(static)— 全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區域。程序結束后由系統釋放。

  4、文字常量區 — 常量字符串就是放在這里的,程序結束后由系統釋放 。

  5、程序代碼區 — 存放函數體的二進(jìn)制代碼。

  二、例子程序

  這是一個(gè)前輩寫(xiě)的,非常詳細

  //main.cpp

  int a = 0; 全局初始化區

  char *p1; 全局未初始化區

  main()

  {

  int b; 棧

  char s[] = "abc"; 棧

  char *p2; 棧

  char *p3 = "123456"; 123456国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放

<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>