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的值。