c++字⾯值常量
字⾯值常量(literal constant),“字⾯值”是指只能⽤它的值称呼它,“常量”是指其值不能修改。每个字⾯值都有相应的类型,3.14是double 型,2是int型。只有内置类型存在字⾯值。
1. 整形字⾯值规则
整形字⾯值常量可以⽤⼗进制、⼋进制、⼗六进制表⽰。
20 // dec
024 // oct(以0开头)
0x14 // hex(以0x或0X开头)
字符常量池是什么意思整形字⾯值常量的类型默认为int或long,其值适合int就是int类型,⽐int⼤就是long类型。在数值后加L或l(⼩写字母l容易与数字1混淆,建议⽤L)可以指定为long,加U或u指定为unsigned类型,加UL或LU定义为unsigned long类型。没有short类型的字⾯值常量。
2. 浮点字⾯值规则
可以⽤⼗进制或科学计数法(指数⽤E或e)表⽰,默认为double,在数值后加F或f表⽰单精度,加L或l表⽰扩展精度。
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》
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论