摘錄C++ PRIMERhtml
字面值常量(literal constant),「字面值」是指只能用它的值稱呼它,「常量」是指其值不能修改。每一個字面值都有相應的類型,3.14是double型,2是int型。只有內置類型存在字面值。c++
1. 整形字面值規則ide
整形字面值常量能夠用十進制、八進制、十六進制表示。post
20 // dec學習
024 // oct(以0開頭)spa
0x14 // hex(以0x或0X開頭)3d
整形字面值常量的類型默認爲int或long,其值適合int就是int類型,比int大就是long類型。在數值後加L或l(小寫字母l容易與數字1混淆,建議用L)能夠指定爲long,加U或u指定爲unsigned類型,加UL或LU定義爲unsigned long類型。沒有short類型的字面值常量。code
2. 浮點字面值規則htm
能夠用十進制或科學計數法(指數用E或e)表示,默認爲double,在數值後加F或f表示單精度,加L或l表示擴展精度。blog
3.14159F .001f 12.345L 0.
3.14159E0f 1E-3F 1.2345E1L 0e0
3. 布爾字面值和字符字面值
布爾字面值:true、false。字符字面值由單引號定義:’2’(char類型)、L’a’(wchar_t類型)。
4. 非打印字符和轉義序列
非打印字符和特殊字符(如單引號、雙引號、反斜槓)都要寫爲轉義字符(以反斜槓開頭)。
不管是普通字符,仍是非打印字符和特殊字符,均可以表示爲「通用轉義字符」。如八進制形式的「\7(響鈴符)、\12(換行符)、\0(空字符)、\62(數字2)」(能夠對照ASCII碼錶看一下)。「通用轉義字符」也能夠用十六進制表示(\xddd)。
5. 字符串字面值
須要用雙引號括起來,非打印字符寫要轉義,編譯器會自動在末尾添加一個空字符。
「hello c++」 // simple string literal 「」 // empty string literal 「\n hello \t c++」 // string literal using newlines and tabs L」hello c++」 // a wide string literal
6. 字符串字面值的鏈接
兩個相鄰的,僅由空格、製表符、換行符分隔的字符串字面值,將鏈接在一塊兒。
std::cout << 「a multi-line 「 「string literal 「 「using concatenation」 << std::endl
輸出:a multi-line string literal using concatenation
「std::cout << 「multi-line」 L」literal 「 << std::endl;」,該語句結果未定義,可能執行也可能崩潰。
7 多行字面值
能夠使用反斜槓,將多行內容看成同一行處理。
// multiline string literal
std::cout << 「a multi-line \
string literal \
using
a backslash」
<< std::endl;
|
反斜槓必須是行尾字符,後面不能有註釋或空格。後繼行行首的任何空格和製表符都是字符串字面值的一部分。
【學習資料】 《c++ primer》