基本內建型別
阿新 • • 發佈:2020-08-15
基本內建型別
基本資料型別:算術型別和空型別
目錄
算術型別
算術型別包括整型和浮點型
算術型別表
型別 | 含義 | 最小尺寸 |
---|---|---|
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》