C語言一些變數的位址以及堆和棧的概念

2021-07-23 19:37:56 字數 613 閱讀 3033

程式如下:

#include int b_n;

int b_y = 2;

static int b = 3;

const int bb = 4;

void part()

int main()

執行結果如下圖:

可以看出全域性變數和static修飾的變數在同乙個儲存位置,區域性變數有自己 的儲存位置,陣列也是有自己的儲存位置。具體位置請看下面的部落格:

堆疊是兩種資料結構。堆疊都是一種資料項按序排列的資料結構,只能在一端(稱為棧頂(top))對資料項進行插入和刪除。在微控制器應用中,堆疊是個特殊的儲存區,主要功能是暫時存放資料和位址,通常用來保護斷點和現場。要點:堆,佇列優先,先進先出

。棧,先進後出。

棧(作業系統):由作業系統自動分配釋放 ,存放函式的

引數值,區域性變數

的值等。其操作方式類似於資料結構中的棧。

堆(作業系統): 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os**,分配方式倒是類似於鍊錶。

堆和棧的一些概念

棧主要存了方法呼叫和區域性變數。堆主要是所有的物件。棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 區別和聯絡 1.申請方式 堆是由程式設計師自己申請並指明...

關於堆和棧的一些知識 Z

一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結...

C 的一些知識以及和C語言的不同

1.資料型別 c 提供了新的資料型別 bool型 2.初始化方法 c語言 int x 1 複製初始化 c 除了複製初始化還有直接初始化 int x 1 3.隨用隨定義 c語言必須先最前面定義 c 可以在中間隨用隨定義 4.輸入和輸出 cin和sin cout x cin x y 優點 不用關注佔位符...