在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 堆棧以及堆和棧的區(qū)別

            堆棧以及堆和棧的區(qū)別

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

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

              的區(qū)別  

              一、預(yù)備知識(shí)—程序的內(nèi)存分配

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

              1、棧區(qū)(stack)— 由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。

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

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

              4、文字常量區(qū) — 常量字符串就是放在這里的,程序結(jié)束后由系統(tǒng)釋放 。

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

              二、例子程序

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

              //main.cpp

              int a = 0; 全局初始化區(qū)

              char *p1; 全局未初始化區(qū)

              main()

              {

              int b; 棧

              char s[] = "abc"; 棧

              char *p2; 棧

              char *p3 = "123456"; 123456