1. 程式人生 > 實用技巧 >基本內建型別

基本內建型別

基本內建型別

基本資料型別:算術型別和空型別


目錄

算術型別

算術型別包括整型和浮點型

算術型別表

型別 含義 最小尺寸
bool 布林型別 未定義
char 字元 8位
wchar_t 寬字元 16位
char16_t Unicode字元 16位
char32_t Unicode字元 32位
short 短整型 16位
int 整形 16位
long 長整型 32位
long long 長整型 64位
float 單精度浮點數 6位有效數字
double 雙精度浮點數 10位有效數字
long double 拓展精度浮點數 10位有效數字

care:
bool值為true/false
int、short、long、long long都是帶符號的,只要在前面加上unsigned就可以得到無符號型別。
字元型則分為三類:char、signed char、unsigned char。char≠signed char,char是否帶字元由系統決定。


型別轉換

當程式使用一種型別而其實物件應該是另外一種型別時,程式回自動進行型別轉換。
    
care:
將一個非布林型別的算術值賦值給布林型別時,若為0便轉化為false,否則都為true。
將一個布林型別值賦值給非布林型別時,若為false則轉化為0,若為true則轉換為1。
將一個算術值賦值給無符號型別

,且超過其的範圍,結果將會是算術值對無符號型別數值總數取模後的餘數。


字面值常量

整數字面值

以O開頭的整數代表八進位制數,以Ox/OX開頭的整數代表十六進位制。

浮點型字面值

以小數/以科學計數法表示的指數,其中指數部分用E/e標識
eg:3.14159   3.14159E0   0.   0e0    .001

字元和字串字面值

用但應好扣起來的稱為char型字面值,雙引號括起來的零個/多個字元構成字串型字面值。

care:字串字面值的型別其實是常量字元構成的陣列,編輯器會在每個字串的結尾處新增一個空字元('\0'),所以字串字面值的實際長度要+1。


轉義序列

概念

不可列印的字元和在C++中有特殊含義的字元
若要使用這些字元則需要用到轉義序列,以反斜線為開始(\)

care:需要注意的是轉移序列在程式中是被當作字元來使用的

換行符 \n 橫向製表符 \t 抱緊(響鈴)符 \a
縱向製表符  \v 退格符 \b 雙引號 \"
反斜線 \\ 問號 \? 單引號 \'
回車符 \r 進紙符  \f

指定字面值的型別

通過新增字首/字尾,改變整型、浮點型的字元字面值的預設型別

字元和字串字面值

字首 含義 型別
u Unicode 16字元
U Unicode 32字元
L 寬字元 wchar_t
u8 UTF-8 char

整數字面值

字尾 最小匹配型別
u/U unsigned
l/L long
ll/LL long long

浮點型字面值

字尾 型別
f/F float
l/L long double

參考

  《C++ primer》