C++的常量及符号

本文主要介绍了C++中的各类常量。包括整型常量(有符号和无符号,八进制、十六进制)、实型常量(小数表示法、指数表示法)、字符常量(含转义字符)、字符串常量,还提及了布尔常量、枚举常量和宏定义常量等信息技术相关内容。

(1)C++整型常量

整型常量可以分为有符号整型常量和无符号整型常量

八进制:以0开头,即以0作为八进制数的前缀,每位取值范围是0~7,八进制数通常是无符号数。

例如:016、0101、0128都是合法的八进制数
十六进制:以0x或者0X开头,其数码取值范围0 ~ 9,以及A ~ F或者a ~ f

例如:0X2A1、0XC5、0XFFFF都是合法的16进制数

(2)C++实型常量

小数表示法:由整数部分和小数部分组成,整数部分和小数部分每位取值范围是0~9,例如:0.0、3.25、0.00596、2.0
指数表示法:指数部分以符号"e"或者"E"开始,但必须是整数,并且符号"e"或"E"两边都必须有一个数,例如:1.2e20和-3.4e-2

(3)C++字符常量

字符常量是单引号括起来的字符,例如:'a'和'?'都是合法字符常量。字符'a'的ASCII码值是97,字符'A'的ASCII码值是41,字符'?'的ASCII码值是63

转义字符是特殊的字符常量,使用时以字符串’'代表开始转义,和后面不同的字符表示转义的字符。转义字符表如下所示:


(4)C++字符串常量

是由一对双引号括起来的零个或多个字符序列,例如:“welcome to our school”、“hello world”。""可以表示一个空字符串。

字符常量’A’和字符串常量"A"是不同的,字符串常量"A"是由'A'和'\0'两个字符组成的,字符串长度是2,字符串常量'A'只是一个字符,没有长度。

(5)C++其他常量

布尔常量:布尔常量只有两个,一个是true,表示真;另一个是false,表示假。

枚举常量:枚举型数据中定义的成员也是常量,这将在后文介绍。

宏定义常量:通过#define宏定义的一些值也是常量。例如:define PI3.1415。其中PI就是常量

### C++ 中的符号常量定义和使用方法C++ 中,符号常量是一种用于表示固定值的标识符,通常用于提高程序的可读性和可维护性。符号常量可以通过两种主要方式定义:使用 `#define` 预处理指令和使用 `const` 限定符。 #### 使用 `#define` 定义符号常量 `#define` 是一种预处理指令,它通过文本替换的方式定义符号常量。这种方式不是语言本身的特性,而是预处理器的功能。例如: ```cpp #define N 30 ``` 在代码中使用时,预处理器会将所有的 `N` 替换为 `30`。这种方式的优点是简单直接,但缺点是没有类型检查,可能导致一些难以发现的错误[^1]。 示例代码: ```cpp #include <stdio.h> int main() { int num, total; num = 10; total = num * N; printf("total = %d\n", total); return 0; } ``` #### 使用 `const` 定义符号常量 `const` 是 C++ 语言本身提供的关键字,用于定义具有类型的常量。这种方式定义的常量具有更好的类型安全性和作用域控制。例如: ```cpp const int N = 30; ``` 在代码中使用时,`N` 是一个具有类型的常量,不能被修改。这种方式的优点是提供了类型检查和更好的作用域管理[^2]。 示例代码: ```cpp #include <iostream> using namespace std; int main() { const int N = 30; int num, total; num = 10; total = num * N; cout << "total = " << total << endl; return 0; } ``` #### 使用 `constexpr` 定义常量 C++11 引入了 `constexpr` 关键字,用于定义编译时常量。这种方式定义的常量不仅具有类型检查,还能在编译时进行计算,从而提高运行时效率。例如: ```cpp constexpr int N = 30; ``` 示例代码: ```cpp #include <iostream> using namespace std; int main() { constexpr int N = 30; int num, total; num = 10; total = num * N; cout << "total = " << total << endl; return 0; } ``` #### 总结 - `#define` 是预处理指令,适用于简单的文本替换,但缺乏类型检查。 - `const` 提供了类型安全的常量定义,适合大多数常量定义场景。 - `constexpr` 在编译时进行计算,适合需要高性能的场景。 选择合适的方式定义符号常量,可以提高代码的可读性、可维护性和性能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值