記憶體 編址 指標

2021-04-28 01:12:46 字數 853 閱讀 8456

2^10 = 1k

2^20 = 1m

2^30 = 1g

2^32 = 4g

別忘了,上述單位都是byte位元組,記憶體是以位元組為單位編址的。可以將32位機器的記憶體(應該是虛擬記憶體)想象成乙個陣列,含有2^32個元素。

記憶體位址就是這個陣列的編號,從1(0x00000001)到 2^32(0xffffffff)

| ————  | 0xffffffff

|00000000|

| ————  |  0x00000004     +

| ————  |  0x00000003     int 

| ————  |  0x00000002      +

| ————  |  0x00000001    ----    char

乙個指標佔四個位元組,這四個位元組組成的32位數即該指標指向的位址。指標只能指向上面陣列中的一項,如果指向的是char型,那麼其值就是該位址對應的那個位元組,如果指向的是int型,那麼其值要從該指標對應的那個位元組再向上數3個,總共四個位元組組成這個int的值。

在使用絕對位址指標時,要注意指標自增自減操作的結果取決於指標指向的資料類別。

如:int *p = (int *)0xf000ff00;

p++ 後的結果是

p= 0xf000ff01 ,

若p指向int

,即:int *p = (int *)0xf000ff00;

p++(

或++p)

的結果等同於:

p =

p+sizeof(int)

,而p—(

或—p)

的結果是

p =

p-sizeof(int)。

記憶體定址 編址

一般常見對記憶體的理解是將他看成是乙個陣列.陣列元素肯定有個大小,陣列的元素還需要有個序號.這個陣列的序號就是記憶體的位址,而陣列元素的大小是記憶體定址的方式,最為常見的是按位元組定址,即每個陣列元素 單元 可以儲存乙個位元組大小的內容.我們將記憶體位址0x.de20起的記憶體按照位元組大小劃分,可...

1 3記憶體編址和定址 記憶體對齊

記憶體邏輯上就是乙個乙個的格仔,這些格仔可以用來裝東西 裡面裝的東西就是記憶體中儲存的數 每個格仔有乙個編號,這個編號就是記憶體位址,這個記憶體位址 乙個數字 和這個格仔的空間 實質是乙個空間 是一一對應且永久繫結的。這就是記憶體的編址方法。在程式執行時,計算機中cpu實際只認識記憶體位址,而不關心...

怎麼理解記憶體的位元組編址

記憶體也就是常說的記憶體條,也就是dram晶元如下圖 計算機的記憶體是按位元組來進行編址的這句話理解為 記憶體是按位元組編址,每個位址的儲存單元可以存放8bit的資料。我們也知道cpu通過記憶體位址獲取一條指令和資料,而他們存在儲存單元中。現在就有乙個問題。我們的資料和指令不可能剛好是8bit,如果...