乙個由c/c++編譯的程式占用的記憶體分為以下幾個部分
棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。
堆區(heap) — 一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os**。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。
全域性區(靜態區)(static)—,全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。 - 程式結束後由系統釋放。
文字常量區 —常量字串就 是放在這裡的。 程式結束後由系統釋放
程式**區—存放函式體的二進位制**。
這是乙個前輩寫的,非常詳細
int a =
0; 全域性初始化區
char
*p1; 全域性未初始化區
main()
;
C C 陣列的遍歷
雖然在c 中擁有vector這一神器,使得很多陣列問題都可以轉化為向量去解決,然而,一些問題還是需要依賴傳統c語言中的陣列。這裡的陣列不止包括存數的,還有儲存字串的。1 陣列宣告int array1 5 double array2 5 string array3 5 注意宣告的過程中,中必須是常量,...
c c 筆記 指向陣列的指標與二維陣列
指向陣列的指標與二維陣列 定義乙個二維陣列很簡單,如int matrix 3 10 如果我們想在函式中對這個二維陣列進行修改那麼該如何傳遞引數呢?有兩種方式 void func int mat 10 或 void func int mat 10 mat 10 mat就是乙個指向陣列的指標。同時 ma...
(c c 學習筆記五)陣列和指標
一.陣列指標和指向陣列的指標變數 乙個變數有乙個位址,乙個陣列包含若干個元素,每個陣列元素都在記憶體中占用儲存單元,它們都有相應的位址。所謂陣列的指標是指數組的起始位址,陣列元素的指標是指數組元素的位址。乙個陣列是由連續的一塊記憶體單元組成的,陣列名就是這款連續記憶體單元的首位址。例 int a 1...