C++ 常量和字面量怎么用?

文章导读
上一个 测验 下一个 常量指的是程序不能更改的固定值,它们被称为字面量。
📋 目录
  1. 整数字面量
  2. 浮点字面量
  3. 布尔字面量
  4. 字符字面量
  5. 字符串字面量
  6. 定义常量
  7. #define 预处理器
  8. const 关键字
A A

C++ 常量/字面量



上一个
测验
下一个

常量指的是程序不能更改的固定值,它们被称为字面量

常量可以是任何基本数据类型,可以分为整数数字、浮点数字、字符、字符串和布尔值。

同样,常量在处理上就像普通变量一样,除了定义后其值不能被修改。

整数字面量

整数字面量可以是十进制、八进制或十六进制常量。前缀指定基数或进制:0x0X 表示十六进制,0 表示八进制,十进制则无前缀。

整数字面量还可以有后缀,由 UL 组合而成,分别表示 unsigned 和 long。后缀可以是大写或小写,并且顺序任意。

以下是一些整数字面量的示例 −

212         // 合法
215u        // 合法
0xFeeL      // 合法
078         // 非法:8 不是八进制数字
032UU       // 非法:不能重复后缀

以下是各种类型整数字面量的其他示例 −

85         // 十进制
0213       // 八进制
0x4b       // 十六进制
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

浮点字面量

浮点字面量包括整数部分、小数点、小数部分和指数部分。您可以用十进制形式或指数形式表示浮点字面量。

使用十进制形式表示时,必须包含小数点、指数或两者皆有;使用指数形式表示时,必须包含整数部分、小数部分或两者皆有。带符号的指数由 eE 引入。

以下是一些浮点字面量的示例 −

3.14159       // 合法
314159E-5L    // 合法
510E          // 非法:指数不完整
210f          // 非法:没有小数点或指数
.e55          // 非法:缺少整数或小数部分

布尔字面量

有两种布尔字面量,它们是标准 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 1 到 3 位的八进制数
\xhh . . . 1 位或多位的十六进制数

示例

以下示例展示了几个转义序列字符 −

#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

注意,将常量定义为大写字母是一种良好的编程实践。