文字是最明显的一种常量。它们被用来对程序的源代码内表达特定的值。我们已经使用了一些在前面的章节中给出具体的数值变量或表达的消息,我们希望我们的方案打印出来,比如,我们当时写到:
在
文字常数可分为:整数,浮点,字符,字符串,布尔,指针,和用户定义的文字。
这些是标识整数值的数值常数。请注意,他们没有用引号括起来,或任何其他特殊字符; 他们是代表十进制整数位的继承简单; 例如,
除了十进制数(那些我们大多数人每天使用),C ++允许使用八进制数字(以8为基数)和十六进制数字作为文字常数(基数为16)的。对于八进制文字,数字前面有一个
所有这些都代表了同一个号码:75(75)分别表示为基10的数字,八进制数字和十六进制数字。
这些文字常量有型,就像变量。默认情况下,整型常量的类型的
无符号可与任何其它两个中的任何命令,以形成被组合
例如:
在所有上述情况下,后缀可以用大写或小写字母来指定。
这是四个有效带有小数的数字用C ++表示。第一个数字是PI,第二个是阿伏伽德罗数,第三个是电荷的电子(一个非常小的数) -所有他们的approximated-,最后一个是数字 3表示为浮点点数值文字。
浮点文字的默认类型是
例如:
任何可以是一个浮点数值常数(部分的字母
前两个表达式表示 单字符文字,然后接下来的两个代表 字符串的几个字符组成。请注意,以表示一个字符,我们将其括单引号(间
无论是单字符和字符串要求周围他们从可能的变量标识或保留字区分开来引号。请注意这两个词语之间的区别: 在这里,仅此一项就指一个标识符,如变量的名称,或者一个复合型的,而(单引号括起来)将参考字符文字(代表小写字符 点¯x字母)。 字符和字符串也可以代表特殊字符,是很难或不可能以其他方式表达一个程序的源代码,例如换行()或制表符()。这些特殊字符是所有的人都用一个反斜杠字符开头()。 在这里,你有一个字符转义码的列表:
例如: 在内部,计算机代表字符数字代码:最典型的是,他们使用的一个扩展 ASCII字符编码系统(参见 ASCII码获取更多信息)。字符也可以使用其数字代码写入反斜线字符(文字表示),接着由代码表示为八进制(基-8)或十六进制(基数16)号码。对于一个八进制值,反斜杠由数字直接跟着; 而对于十六进制的字符插入反斜杠和十六进制数字本身之间(例如:或)。 几个字符串可以连接起来形成一个字符串简单地通过一个或多个空格,包括制表符,换行符和其他有效空白字符分隔它们的文字。例如:
以上是一个字符串等同于:
注意引号内的空间是如何字面的一部分,而他们之外都没有。
在C ++中,反斜杠(:一些程序员也使用了一招,包括在多线长的字符串
相当于:
所有字符文字和上述字符串由类型的字符
需要注意的是,不同类型的后缀整型常量,这些前缀是 区分大小写的:小写
为字符串常量,除了上述
在原始字符串,反斜杠和单引号和双引号都是有效的字符; 字面的内容是由一个初始分隔和最后,这里是任意字符序列(包括空序列)。字符串的内容是什么位于括号内,忽略了划分序列本身。例如:
上述两个字符串等同
然后我们可以使用这些名称,而不是定义它们的文字:
此指令后,任何出现
例如:
注意,该
| |
在
5
这一段代码是一个
常量。
文字常数可分为:整数,浮点,字符,字符串,布尔,指针,和用户定义的文字。
整数数词
| |
这些是标识整数值的数值常数。请注意,他们没有用引号括起来,或任何其他特殊字符; 他们是代表十进制整数位的继承简单; 例如,
1776
始终代表着价值
1776。
除了十进制数(那些我们大多数人每天使用),C ++允许使用八进制数字(以8为基数)和十六进制数字作为文字常数(基数为16)的。对于八进制文字,数字前面有一个
0
(零)字符。和十六进制,它们用字符前面
0x
(零,x)的。例如,下面的文字常量都是彼此等效:
| |
所有这些都代表了同一个号码:75(75)分别表示为基10的数字,八进制数字和十六进制数字。
这些文字常量有型,就像变量。默认情况下,整型常量的类型的
int
。然而,某些后缀可以附加到文字指定不同的整数类型整数:
后缀 | 类型修饰符 |
---|---|
u 要么 U | unsigned |
l 要么 L | long |
ll 要么 LL | long long |
无符号可与任何其它两个中的任何命令,以形成被组合
unsigned long
或
unsigned long long
。
例如:
| |
在所有上述情况下,后缀可以用大写或小写字母来指定。
浮点数词
他们表示实际值与小数和/或指数。它们可以包括要么一个小数点,一个e
字符(即表示
“在第X个高度由十”,其中
点¯x是下面的一个整数值
e
,或两者小数点和字符)
e
字符:
| |
这是四个有效带有小数的数字用C ++表示。第一个数字是PI,第二个是阿伏伽德罗数,第三个是电荷的电子(一个非常小的数) -所有他们的approximated-,最后一个是数字 3表示为浮点点数值文字。
浮点文字的默认类型是
double
。型的浮点文本
float
或
long double
可通过将以下后缀之一指定:
后缀 | 类型 |
---|---|
f 要么 F | float |
l 要么 L | long double |
例如:
| |
任何可以是一个浮点数值常数(部分的字母
e
,
f
,
l
)可以使用具有在意义上没有差异低于或大写字母写入。
字符和字符串
字符和字符串用引号括起来: | |
前两个表达式表示 单字符文字,然后接下来的两个代表 字符串的几个字符组成。请注意,以表示一个字符,我们将其括单引号(间
'
),并表达一个字符串(通常由多个字符),我们用双引号之间的字符(
"
)。
无论是单字符和字符串要求周围他们从可能的变量标识或保留字区分开来引号。请注意这两个词语之间的区别: 在这里,仅此一项就指一个标识符,如变量的名称,或者一个复合型的,而(单引号括起来)将参考字符文字(代表小写字符 点¯x字母)。 字符和字符串也可以代表特殊字符,是很难或不可能以其他方式表达一个程序的源代码,例如换行()或制表符()。这些特殊字符是所有的人都用一个反斜杠字符开头()。 在这里,你有一个字符转义码的列表:
x
'x'
x
'x'
'x'
\n
\t
\
转义码 | 描述 |
---|---|
\n | 新队 |
\r | 回车 |
\t | 标签 |
\v | 垂直制表 |
\b | 退格 |
\f | 换(页供稿) |
\a | 警报(蜂鸣声) |
\' | 单引号(' ) |
\" | 双引号(" ) |
\? | 问号(? ) |
\\ | 反斜杠(\ ) |
例如: 在内部,计算机代表字符数字代码:最典型的是,他们使用的一个扩展 ASCII字符编码系统(参见 ASCII码获取更多信息)。字符也可以使用其数字代码写入反斜线字符(文字表示),接着由代码表示为八进制(基-8)或十六进制(基数16)号码。对于一个八进制值,反斜杠由数字直接跟着; 而对于十六进制的字符插入反斜杠和十六进制数字本身之间(例如:或)。 几个字符串可以连接起来形成一个字符串简单地通过一个或多个空格,包括制表符,换行符和其他有效空白字符分隔它们的文字。例如:
'\n'
'\t'
"Left \t Right"
"one\ntwo\nthree"
\
x
\x20
\x4A
| |
以上是一个字符串等同于:
| |
注意引号内的空间是如何字面的一部分,而他们之外都没有。
在C ++中,反斜杠(:一些程序员也使用了一招,包括在多线长的字符串
\
在一行的末尾被认为是)
续行,合并双方的线下入一行字符。因此下面的代码:
| |
相当于:
| |
所有字符文字和上述字符串由类型的字符
char
。不同的字符类型可以通过使用以下前缀之一来指定:
字首 | 字符类型 |
---|---|
u | char16_t |
U | char32_t |
L | wchar_t |
需要注意的是,不同类型的后缀整型常量,这些前缀是 区分大小写的:小写
char16_t
和大写的
char32_t
和
wchar_t
。
为字符串常量,除了上述
u
,
U
和
L
两个附加前缀存在:
字首 | 描述 |
---|---|
u8 | 该字符串使用UTF-8的编码执行 |
R | 该字符串是一个原始字符串 |
在原始字符串,反斜杠和单引号和双引号都是有效的字符; 字面的内容是由一个初始分隔和最后,这里是任意字符序列(包括空序列)。字符串的内容是什么位于括号内,忽略了划分序列本身。例如:
R"sequence(
)sequence"
sequence
| |
上述两个字符串等同
"string with \\backslash"
。该
R
前缀可以与任何其他前缀,如结合
u
,
L
或
u8
。
其他文字
三关键字文字在C ++中存在:true
,
false
和
nullptr
:
true
和false
对于类型变量的两个可能的值bool
。nullptr
是空指针值。
| |
类型化常量表达式
有时,它仅仅是方便的提供一个名称的恒定值: | |
然后我们可以使用这些名称,而不是定义它们的文字:
| | 31.4159 |
|
预处理器定义(#定义)
命名常量另一种机制是使用预处理器定义。它们有以下形式:#define identifier replacement
此指令后,任何出现
identifier
在代码中被解释为
replacement
,在更换任何字符序列(直到行末尾)。这种替换是由预处理器执行,并且程序进行编译之前,这样就造成了一种盲置换发生的:类型或语法涉及的有效性不以任何方式进行检查。
例如:
| | 31.4159 |
|
注意,该
#define
线是预处理器指令,并作为如单行指令-unlike C ++报表─不需要分号;在结束(); 该指令自动扩展到该行的末尾。如果分号被包括在该行,它是置换序列的一部分,并且也包含在所有替换匹配项。