C 中基本的資料型別和所佔的記憶體大小

2021-07-24 18:54:19 字數 1780 閱讀 9429

一、整形

1、整形有char、short、int、long、long long,這5個也預設為signed xx ,相應的無符號的型別,即unsigned型別。規則:short至少16位;int至少和short一樣;long至少32位,且至少和int一樣長;long long至少64位,且至少和long一樣長。不同的資料型別的所佔的位元組數不一樣,這與系統和c++庫有關係。

可以看到,在32位和64位計算機上,對於整形唯一不同的就是int和指標的大小,其中32位計算機上int佔2位元組,64位上佔4位元組。指標大小和int大小相同。

2、wchar_t:「char是8位字元型別,最多只能包含256種字元,許多外文字符集所含的字元數目超過256個,char型無法表示。

wchar_t資料型別一般為16位或32位,但不同的c或c++庫有不同的規定,如gnu libc規定wchar_t為32位,總之,wchar_t所能表示的字元數遠超char型。標準c++中的wprintf()函式以及iostream類庫中的類和物件能提供wchar_t寬字元型別的相關操作。」

3、c ++11新增型別:char16_t和char32_t

char16_t:16位無符號->字首u表示

char32_t:32位無符號->字首u表示

值得注意的是vs2013還沒有支援char16_t和char32_t

二、浮點型

浮點有3個:float、double、long double

規則:float至少4位元組;double至少6位元組,且不少於float;long double至少和double一樣多。

3種型別,指數範圍至少是-37~37.

通常float32位,double64位,long double80、96或128位。我在vs2013上測到long double位64位。

三、字首和字尾

1、字首:

0開頭表示8進製,0x或0x開頭表示16進製制。

2、字尾:

—— l或l表示long常量

—— u或u表示unsigned int常量

—— ul、ul、ul、ul、lu、lu、lu、lu表示unsigned long常量。(lu可以採用任意順序和大小寫表示)

—— ll、ll表示long long 常量。

—— ull、ull、ull、ull表示unsigned long long常量。

3、對於浮點常量,

—— f或f表示float

—— l或l表示long double

—— 其他都表示double

4、不帶字尾時的規則——盡可能採用小的型別:

—— 對於10進製:int->long->long long

—— 對於8進製或16進製制:int->unsigned int->long->unsigned long->long long ->unsigned long long 

出處:

C C 不同資料型別所佔記憶體

下面給出不同位數編譯器下的基本資料型別所佔的位元組數 16位編譯器 char 1個位元組 char 即指標變數 2個位元組 short int 2個位元組 int 2個位元組 unsigned int 2個位元組 float 4個位元組 double 8個位元組 long 4個位元組 long lo...

iOS基本資料型別所佔記憶體大小

1 在swift中基本的資料型別都有哪些?float cgfloat double float t float32 float64 float80 double t int int fast8 t int fast16 t int fast32 t int fast64 t intmax t nsi...

Object Pascal基本資料型別所佔的位元組數

名稱 變數型別 shortint 8位有符號整數 byte 8位無符號整數 smallint 16位有符號整數 word 16位無符號整數 integer 32位有符號整數 longint 32位有符號整數 cardinal 32位無符號整數 int64 64位有符號整數 single 4位元組浮點...