C 學習之旅 C 中資料型別所佔的位元組

2021-06-18 17:35:30 字數 1214 閱讀 2477

先來列一下c++的資料型別:

整型:int,long。這兩個還分signed(有符號)和unsigned(無符號)的,當然有符號和無符號所佔位元組大小是一樣的,就不管他了。

布林型:bool         

字元型:char,這兩個還分signed(有符號)和unsigned(無符號)的,不過沒多大用,用在轉化為數值時就用區別。

浮點型:float,double,long double。

這只能上**驗證了,貌似機子不同資料型別所佔大小也不同,太威武了,我就檢查下我這個32位windows系統電腦吧。我用的ide是code::blocks,發現挺好用的,主要是工程檔案小,不像vs2010建個工程就大得很,哥這小硬碟吃不消啊(題外話)。

先看整型的吧,**如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include

usingnamespacestd;

intmain()

結果顯示:

int:4

long:4

int和long都是佔4個位元組(即32位)。

其他資料型別驗證吧上面**資料型別替換下就是了,得出下面的結果:

bool:1

char:1

wchar_t:2

float:4

double:8

特別要注意的時,對於指標型別,都佔4個位元組,指標指向的是乙個位址,位址是int型別的,32位作業系統就是4位元組。當然如果是64位作業系統那就是8位元組了。

此外,int這個型別佔作業系統乙個記憶體單元大小。早先16位作業系統乙個記憶體單元是16位,所以是2個位元組;32位系統乙個記憶體單元是是32位,所以是4位元組;64位作業系統乙個記憶體單元是16位,故佔8個位元組。

另外還需要注意,以下情況為影響分配情況:

1、函式所佔位元組

2、記憶體變數對齊方式

詳情請看下兩篇文章

C 資料型別所佔位元組大小

對於指標型別,因為指標指向的是乙個位址,32位作業系統就是4位元組。64位作業系統那就是8位元組了。int這個型別佔作業系統乙個記憶體單元大小。早先16位作業系統乙個記憶體單元是16位,所以是2個位元組 32位系統乙個記憶體單元是是32位,所以是4位元組 64位作業系統,4位元組。整形加unsign...

C語音中資料型別所佔位元組數

和機器字長及編譯器有關係 所以,int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則 ansi iso制訂的 1 sizeof short int sizeof int 2 sizeof int sizeof long int 3 short int至少應為16位...

C語言奇妙之旅 資料型別

找程式錯誤。include int main 其中 int main 寫錯了,應該是 int main 要注意區分大小寫!break是關鍵字 所以會報錯 printf s break 應該寫成printf s break 注意一定是英文本元 每個資料型別的位元組在每個編譯器都不一樣,所以我不會去寫,...