C 學習筆記之指標 引用 記憶體分配總結

2021-10-03 02:41:01 字數 904 閱讀 8790

指標是乙個值為記憶體位址的變數,指標不要貿然移動,如果為初始化的話,指標取隨機。

引用即為物件起了另外乙個名字(引用即別名),引用必須要被初始化

推薦使用引用,指標需要驗證物件有沒有值,效率較低,而引用只是為物件起了乙個別名

int

main()

; cout <<

sizeof

(num)

;return0;

}

num是陣列首位址

輸出如下:

動態分配記憶體

//p在棧區 在堆區分配了一塊int型空間

int*p =

newint

;//盡量不使用 p++這種操作,p不是陣列,是指向乙個連續的記憶體空間,new運算子返回第乙個元素的位址

delete p;

int

*p =

newint[5

];delete

p;//釋放整個陣列

//陣列定義的兩種方式

int*num =

newint[5

];int nums[5]

=;//num此時其實是沒有空間的,sizeof(num) = 4,sizeof(nums) = 20

程式的記憶體分配

示例:

C 學習 之 指標及動態記憶體分配(筆記)

簡單來說,指標是儲存記憶體位址的變數。當我們宣告了乙個指標變數後,使用該指標時系統會根據指標內的位址索引記憶體塊,讀取記憶體內的值。指標因為是用來存位址的,所以一般固定長度為4個位元組。void指標指向記憶體塊的指標。指標的定義示例 int a 0 int pointer a a 在編寫程式時我們可...

C 學習筆記之記憶體分配

靜態記憶體 staitc memory 儲存區域性static物件 類static資料成員 定義在任何函式之外的變數 棧記憶體 stack 儲存定義在函式內的非static物件 自由空間 free store 或稱堆記憶體 heap 儲存動態分配 即程式執行時分配 的物件 1.分配在靜態記憶體和棧記...

c 學習筆記 指標和引用

指標和引用的區別 1 引用是乙個變數的別名,本身不單獨分配自己的記憶體空間,跟原來變數共享記憶體空間 而指標需要重新分配自己的記憶體空間,用來儲存指向物件的位址。2 引用訪問乙個變數是直接訪問,而指標是間接訪問。3 引用一經初始化就繫結到乙個記憶體空間,且只能是這個記憶體空間的名字,定義時必須初始化...