1樓:夜下靜花水月
因為指標它要保證能將所有的地址存放下來,所以根據計算機的定址能力,32位的機器最小要保證指標變數的大小是4個位元組,當然如果你想開8個位元組當然也沒有問題,但是開出來浪費。在64位機器上面開8個位元組比較合理。
例如:8位的機器
將所有的記憶體條插滿,總共是2^8=256個記憶體地址。
而我們知道,按照規定一個記憶體地址所代表的永遠是1個位元組。
所以:插滿的機器總共有256位元組。
現在的條件是,8位的機器,256位元組的記憶體。想要一個指標,指標裡面存放地址,這個指標要有足夠的空間將所有的地址存放進去。
即它要存放門牌號碼1-256,它要保證所有的門牌都要記下。那麼如果這個指標開的大小是2位,即00,01,10,11總共能表示1-4個門牌,這顯然是不夠的,如果開到8位,那麼這個指標就能存放1,2,3,4,5…256。
所以最終,可能(因為有些指標是在暫存器上面的)在256位元組的記憶體上面有一個指標佔用了8位。
最終的規律:8位計算機->指標大小是8位 32位計算機->指標大小是32位 。。。。
2樓:go學龍
沒有為什麼,系統規定
turbo c中int型別的變數佔的位元組數?
為什麼任何型別的指標 sizeof(*)時都為4啊
3樓:匿名使用者
這個儲存的是指標,指標又都是4個位元組,所以...
指標和指標變數的區別是什麼,指標和指標變數有什麼區別呢?
指標,其實就是一個記憶體地址 指標變數,就是存放記憶體地址的變數,也就是存放指標的變數,這樣說,通俗了吧,他們之類不應該講區別,而是應該講關係,指標是一個地址,而指標變數時存放地址的變數。的意思是 指向 地址應該對應地址。變數的指標就是變數的地址。存放變數地址的變數是指標變數。允許用一個變數來存放指...
為什麼指標是位元組,為什麼指標是4個位元組
勇欣笑庹斐 對32位系統來說就是4個位元組的 因為指標在記憶體中就是 16進位制數 倒黴熊 現在電腦的記憶體不止有4個g了,8個g的都有了。這裡的4個位元組,32位是地址匯流排的寬度,址匯流排ab是專門用來傳送地址的,地址匯流排的位數決定了cpu可直接定址的記憶體空間大小,比如8位微機的地址匯流排為...
為什麼不能將整數賦給指標變數,為什麼不能將一個整數賦給一個指標變數?
99承情 因為指標變數所對應的是地址,而整數是存放在某個地址上的內容。二者不一樣。對於指標變數如何程式 int integer 0 為求地址運算子,指標用來儲存一些變數的地址 可以這樣訪問 pinteger 得到 pinteger這個整形指標裡面的值0 指標的基本概念 在計算機中,所有的資料都是存放...