<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            C語言

            c語言stack(棧)和heap(堆)的使用

            時間:2025-01-28 13:07:06 C語言 我要投稿

            c語言stack(棧)和heap(堆)的使用

              在計算機領域,堆棧是一個不容忽視的概念,我們編寫的C語言程序基本上都要用到。本文主要介紹了c語言stack(棧)和heap(堆)的使用詳解,供參考學習,感興趣的小伙伴們可以參考一下!想了解更多相關信息請持續關注我們應屆畢業生考試網!

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

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

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

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

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

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

              5、程序代碼區—存放函數體的二進制代碼。

              二、例子程序

              代碼如下:

              //main.cpp

              int a=0;  //全局初始化區

              char *p1;  //全局未初始化區

              main()

              {

              intb;棧

              char s[]="abc";  //棧

              char *p2;     //棧

              char *p3="123456";  //123456

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看