1. 程式人生 > >[C和指標] 6-指標

[C和指標] 6-指標

6.1 記憶體和地址

我們可以把計算機的記憶體看作是一條長街上的一排房屋,每座房子都可以容納資料,並通過一個房號來標識。
這個比喻頗為有用,但也存在侷限性。計算機的記憶體由以億萬計的位(bit)組成,每個位都可以容納值0或1.由於一個位所能表示的值的範圍太有限,所以單獨的位用處不大,

通常許多位合成一組作為一個單位,這樣就可以儲存範圍較大的值。這裡有一幅圖,展示了現實機器中的一些記憶體位置。

這些位置的每一個都被稱為位元組(byte),每個位元組都包含了儲存一個字元所需要的位數。上面這張圖並沒有顯示這些位置的內容,但記憶體中的每個位置總是包含一些值。

每個位元組通過地址標識,如上圖方框上面的數字所示。
為了儲存更大的值,我們把兩個或更多個位元組合在一起作為一個更大的記憶體單位。例如,許多機器以字為單位儲存整數,每個字一般由2個或4個位元組組成。下面這張圖所表示的記憶體位置與上圖相同,但這次它以4個位元組的字表示。

注意,儘管一個字包含了4個位元組,它仍然只有一個地址。在要求邊界對齊的機器上,整型值儲存的起始位置只能是某些特定的位元組,通常是2或4的倍數。