C++基本資料型別總結

啊拉丁的魚發表於2018-02-08

一、整形

1、整形有char、short、int、long、long long,這5個也預設為signed XX ;

規則:short至少16位;int至少和short一樣;long至少32位,且至少和int一樣長;long long至少64位,且至少和long一樣長。

其中,後面4個都有無符號變體。unsigned short、unsigned int、unsigned long、unsigned long long.
注意,unsigned本身是unsigned int的縮寫。

 

可以看到,在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

相關文章