C++ 常量/字面值
常量是指程序不能修改的固定值,它们被称为 字面值 。
常量可以是基本数据类型中的任何类型,并可分为整数、浮点数、字符、字符串和布尔值。
与常规变量一样,常量也被视为普通变量,只是在定义后其值不能被修改。
整数字面值
整数字面值可以是十进制、八进制或十六进制常量。前缀指定了基数:0x或0X表示十六进制,0表示八进制,没有前缀表示十进制。
整数字面值也可以有后缀,后缀是U和L的组合,分别表示无符号和长整型。后缀可以是大写或小写,并且可以以任何顺序。
以下是一些整数字面值的示例 –
212 // Legal
215u // Legal
0xFeeL // Legal
078 // Illegal: 8 is not an octal digit
032UU // Illegal: cannot repeat a suffix
以下是各种整数字面值的其他示例 –
85 // decimal
0213 // octal
0x4b // hexadecimal
30 // int
30u // unsigned int
30l // long
30ul // unsigned long
浮点数字面量
浮点数字面量由整数部分、小数点、小数部分和指数部分组成。你可以用十进制形式或指数形式表示浮点数字面量。
在用十进制形式表示时,你必须包括小数点、指数或两者,而在用指数形式表示时,你必须包括整数部分、小数部分或两者。符号指数由e或E引入。
下面是一些浮点数字面量的示例−
3.14159 // Legal
314159E-5L // Legal
510E // Illegal: incomplete exponent
210f // Illegal: no decimal or exponent
.e55 // Illegal: missing integer or fraction
布尔字面值
有两个布尔字面值,它们是C++标准关键字的一部分:
- 一个值为 true 代表真。
-
一个值为 false 代表假。
你不应该认为true的值等于1,false的值等于0。
字符字面值
字符字面值用单引号括起来。如果字面值以L(仅大写)开头,则它是宽字符字面值(例如,L’x’),应该存储在 wchar_t 类型的变量中。否则,它是窄字符字面值(例如,’x’),可以存储在 char 类型的简单变量中。
字符字面值可以是普通字符(例如,’x’),转义序列(例如,’\t’),或通用字符(例如,’\u02C0’)。
在C++中,有一些特定的字符,在它们之前加上反斜杠会有特殊的含义,它们用于表示换行符(\n)或制表符(\t)。这里,你有一个此类转义序列代码的列表:
转义序列 | 含义 |
---|---|
\\ |
反斜杠字符 |
' |
单引号字符 |
" |
双引号字符 |
\? |
问号字符 |
\a |
警报或响铃 |
\b |
退格键 |
\f |
换页键 |
\n |
换行键 |
\r |
回车键 |
\t |
水平制表符 |
\v |
垂直制表符 |
\ooo |
一到三位八进制数 |
\xhh . . . |
一个或多个十六进制数字 |
以下是一个示例,展示了一些转义序列字符 –
#include <iostream>
using namespace std;
int main() {
cout << "Hello\tWorld\n\n";
return 0;
}
当上述代码被编译并执行时,会产生以下结果 −
Hello World
字符串常量
字符串常量包含在双引号中。字符串包含类似于字符常量的字符:普通字符、转义序列和通用字符。
您可以使用字符串常量将一行长的代码分为多行,并使用空格将它们分开。
以下是一些字符串常量的示例。这三种形式都是相同的字符串。
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
定义常量
在C ++中有两种简单的方法来定义常量 −
- 使用 #define 预处理器。
-
使用 const 关键字。
#define预处理器
以下是使用#define预处理器定义常量的形式−
#define identifier value
以下示例详细解释了它:
#include <iostream>
using namespace std;
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main() {
int area;
area = LENGTH * WIDTH;
cout << area;
cout << NEWLINE;
return 0;
}
当上述代码被编译和执行时,它产生以下结果 –
50
const关键字
你可以使用 const 前缀来声明特定类型的常量,如下所示:
const type variable = value;
以下示例详细解释了此问题−
#include <iostream>
using namespace std;
int main() {
const int LENGTH = 10;
const int WIDTH = 5;
const char NEWLINE = '\n';
int area;
area = LENGTH * WIDTH;
cout << area;
cout << NEWLINE;
return 0;
}
当上述代码被编译并执行时,会产生以下结果 −
50
请注意,将常量定义为大写字母是一种良好的编程习惯。