一、整形
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
參考:《C++ Primer Plus》、百度百科。