c++ 字面值常量 (小記)

摘錄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》

相關文章
相關標籤/搜索