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》

相关文章
相关标签/搜索