計算機的記憶體空間主要分為三個區:系統程式區、應用程式區和資料區
,其中資料區又分為系統程式資料區和應用程式資料區兩類。
大家在學習過程中編制的
c語言程式就屬於應用程式,程式**本身存放在程式區,而程式執行時所需變數的儲存空間則在應用程式資料區分配,該資料區又分為靜態資料區、堆疊區和堆區三種,程式執行時所需要的不同儲存屬性的變數將分別分配在這三個區以及暫存器區。
在圖
1.9中,每乙個方格代表乙個
8位的儲存單元( 即
1位元組),程式、指令和資料等就儲存在這些儲存單元中,每乙個儲存單元都有其編號,這個編號就是位址,方框左邊的編碼就是該方框所代表的儲存單元的位址。在
c語言中還有乙個概念叫做指標,實際上指標就是位址。而指標變數則是
c語言中專門用來存放指標的變數。
C語言學習 記憶體分割槽
1.1 資料型別 對函式返回的限定 void fun int a 對函式引數的限定 int fun void void a error,不能確定分配記憶體空間的大小void p ok,萬能指標,指標型別都是4個位元組,函式引數,函式有返回值 1.void 可以指向任何型別的資料,被稱為萬能指標 vo...
c 記憶體分割槽
堆 由程式設計師手動分配和釋放,完全不同於資料結構中的堆,分配方式類似鍊錶。由malloc c語言 或new c 來分配,free c語言 和delete c 釋放。若程式設計師不釋放,程式結束時由系統釋放。棧 由編譯器自動分配和釋放的,存放函式的引數值 區域性變數的值等。操作方式類似資料結構的棧。...
C 記憶體分割槽
前言 最近正在學習有關static的知識,發覺對c 的記憶體分割槽不是很了解,上網查了很多資料,遂將這幾天的學習筆記進行了簡單整理,發表在這裡 棧區 stack 主要用來存放函式的引數以及區域性變數。棧區由系統進行記憶體管理,在函式完成執行時,系統會自行釋放棧區的記憶體,而不需要使用者參與管理。整個...