關於指標型別占用的位元組數

2022-05-10 20:42:08 字數 800 閱讀 3728

如果cpu是32位,記憶體是cpu能夠直接訪問的區域,cpu每次處理的資料也是32位,那cpu能夠直接訪問的記憶體大小就是2的32次方,也就是4gb,所以一般我們實用的台式電腦大多數的記憶體上線都是4gb.

乙個位址是32位,任何指標都是乙個位址,所以就是占用4byte(32位),在不同的硬體平台上,指標變數占用的記憶體大小與其位址值的範圍大小成正比。

但是實際上我們在window下利用vc或者vs編譯器寫**時,有可能會出現這樣的情況:比如我們的cpu硬體是64位的,作業系統也是64位的,但是由於vs建立的工程用的是win32,對應於32位的編譯器,則所用到的指標型別實際上還是4個位元組,即為32位;如果將vs工程配置為win64,則可以得到占用8個位元組的指標,這個是可以試驗測試的。

拓展內容:關於擴充套件記憶體條,目前一般的計算機cpu都是64位的,而計算機的記憶體是由作業系統來管理的,因此可以擴充套件記憶體條的最大寬度決定於計算機作業系統的位數,例如:一台cpu為64位的計算機上,安裝了乙個xp系統(32位),則可以擴充套件的最大的記憶體空間就是2的32次方,也就是4gb(實際上,真正可以訪問的記憶體應該比這個小,也就3點幾個g)。

如何檢視計算機cpu的位數和作業系統的位數。在cmd命令視窗內輸入systeminfo,如此就可以檢視如下視窗:特別注意下「系統型別」、「處理器」分別對應了計算機作業系統和處理器cpu的位數,其中x86說明是32位的,x64說明是64位的。

(額額額,好桑心,傳了半天總是顯示不鳥)

資料型別,指標,占用的位元組數

char佔1位元組,short佔 2 位元組,int float long 都佔 4 位元組,double 佔8 位元組 指標長度和位址匯流排有關。因為指標記錄的就是乙個位址,那麼32位的就是4位元組,64位的就是8位元組。發現乙個問題,以下 是在win10 64位系統下跑的,理應來說int佔8個位...

c 資料型別占用的位元組數

bool system.boolean 布林型,其值為 true 或者 false byte system.byte 位元組型,佔 1 位元組,表示 8 位正整數,範圍 0 255 sbyte system.sbyte 帶符號位元組型,佔 1 位元組,表示 8 位整數,範圍 128 127 char...

c 資料型別占用的位元組數

bool system.boolean 布林型,其值為 true 或者 false byte system.byte 位元組型,佔 1 位元組,表示 8 位正整數,範圍 0 255 sbyte system.sbyte 帶符號位元組型,佔 1 位元組,表示 8 位整數,範圍 128 127 char...