在编程中,常量是一种特殊类型的变量,其值在程序执行期间不能被改变。C++ 提供了多种方式来定义和使用常量,这使得代码更加清晰和安全。本章将详细介绍如何在 C++ 中使用常量。
定义常量
使用 const
关键字
const
是 C++ 中定义常量的关键字。通过在声明变量时加上 const
关键字,可以确保该变量的值不会被修改。下面是一个简单的例子:
-- -------------------- ---- ------- -------- ---------- ----- --------- ---- --- ------ - ----- --- --- - ---- ---- -- ---- ---- - -- --- -- ----- -- --- - ---- -- -------------- --- --- ------ -- -
使用 constexpr
constexpr
是 C++11 引入的一个关键字,它允许在编译时计算常量表达式的值。与 const
不同,constexpr
更适用于需要在编译时就确定值的情况,比如数组的大小等。
-- -------------------- ---- ------- -------- ---------- ----- --------- ---- --- ------ - --------- --- ---- - -- --- ----------- - --- -- -- -- --- ---- -- -------- - -- ---- -- ----- ------ -- -
字面量常量
字面量常量是指那些直接写在程序中的值,比如数字、字符或字符串。它们在 C++ 中被视为常量,因为它们的值在程序执行过程中是固定的。
数字字面量
数字字面量可以是整数、浮点数或十六进制数等。
int num1 = 123; // 整数 double num2 = 123.456; // 浮点数 int num3 = 0x1F; // 十六进制数
字符字面量
字符字面量是由单引号括起来的单个字符。
char ch = 'A';
字符串字面量
字符串字面量是由双引号括起来的一系列字符。
char str[] = "Hello, World!";
符号常量
符号常量是使用预处理器宏定义的常量,通常用于给某些难以记忆的数字赋予一个有意义的名字。
#define PI 3.14159 #define MAX_SIZE 100
使用预处理器宏定义的常量虽然方便,但在作用域和类型检查方面不如 const
或 constexpr
灵活和安全。
内置类型常量
除了用户自定义的常量外,C++ 标准库还提供了一些内置类型的常量。这些常量通常位于特定的命名空间或头文件中,比如 <limits>
头文件中定义的数值范围常量。
-- -------------------- ---- ------- -------- ---------- -------- -------- ----- --------- ---- --- ------ - ---- -- ---- ------- - -- -------------------------- -- ----- ---- -- ------ ------- - -- ---------------------------- -- ----- ------ -- -
总结
本章介绍了 C++ 中常量的概念以及几种不同的定义方法,包括使用 const
和 constexpr
关键字定义常量,以及使用符号常量和内置类型常量。了解和正确使用常量可以使程序更易于理解和维护,并有助于减少潜在的错误。