凡是直接寫出來的數值 (value) 就是字面常數,基本內建型態如整數 (integer) 、浮點數 (floating-point number) 、布林 (Boolean) 、字元 (character) 等都有字面常數。
以數字出現的都是十進位整數字面常數,例如
1234 | |
65 | |
963 | |
0 |
直接寫出來的數字型態為 int ,其他整數型態還有 short 與 long 。
利用前綴可以將整數常數表示為八進位 (octal) 或十六進位 (hexadecimal)
前綴 | 種類 |
---|---|
0 | 八進位 |
0x, 0X | 十六進位 |
如
065 // 等同十進位數字 53 | |
077 // 等同十進位數字 63 | |
0x65 // 等同十進位數字 101 | |
0xff // 等同十進位數字 255 |
利用後綴可以標明整數為 long 型態,也就是長整數,或是標明為無正負號整數
後綴 | 種類 |
---|---|
l, L | 長整數 |
u, U | 無正負號整數 |
帶小數點的數字就是浮點數,如
0.125 | |
22.69896 | |
101.002 | |
33. |
接寫出來的浮點數型態為 double ,其他浮點數型態還有 float 。
利用後綴可以標明浮點數的種類,如
後綴 | 種類 |
---|---|
f, F | float |
l, L | long double |
浮點數也可以用科學記號的方法來表示,如
1.125e-1 | |
3.521e4 | |
5.1203E2 | |
1e2 |
1.125e-1 = 1.125×10-1
至於布林 bool 的「真」就是關鍵字 true 或是非 0 的整數,「假」就是關鍵字 false 或是整數 0 。
字元 char 則是以單引號圍起來的單一符號,如
'a' | |
'%' | |
'S' | |
'3' | |
']' | |
' ' |
char 可以直接使用 ASCII 編碼的符號,也就是在英文鍵盤上直接打出來的符號,此外 ASCII 也可以用 8 進位或 16 六進位的表示方式。 8 進位須以反斜線開頭,其後接 8 進位數字,如
'\141' // 與 'a' 相同 | |
'\45' // 與 '%' 相同 | |
'\123' // 與 'S' 相同 | |
'\63' // 與 '3' 相同 |
16 進位則以 \x 開頭,其後接 16 進位數字,如
'\x61' // 與 'a' 相同 | |
'\x25' // 與 '%' 相同 | |
'\x53' // 與 'S' 相同 | |
'\x33' // 與 '3' 相同 |
有些不可見字元被稱為跳脫序列 (excape sequence) ,可用反斜線 \ 加上代表該字元的符號來表示,以下是完整列表
跳脫序列的字元 | 功能 |
---|---|
\a | 響鈴 |
\b | 倒退鍵 |
\f | 跳頁 |
\n | 新列 |
\r | 歸位符號 |
\t | tab 鍵 |
\v | 垂直定位符號 |
\\ | 反斜線 |
\? | 問號 |
\' | 單引號 |
\" | 雙引號 |
寬字元 wchar_t ,字面常數為在單引號前加上 L ,例如
L'A' | |
L'a' |
C++11 增加兩個 Unicode 字元型態,分別是 char16_t 及 char32_t ,字面常數為在單引號前加上 U 為 char32_t ,而 u 為 char16_t ,例如
U'A' // char32_t | |
u'a' // char16_t |
continue ...
沒有留言:
張貼留言