C++ 基础

C++ 主页 C++ 概述 C++ 环境设置 C++ 基本语法 C++ 注释 C++ Hello World C++ 省略命名空间 C++ 标记 C++ 常量/字面量 C++ 关键字 C++ 标识符 C++ 数据类型 C++ 数字数据类型 C++ 字符数据类型 C++ 布尔数据类型 C++ 变量类型 C++ 变量作用域 C++ 多变量 C++ 基本输入/输出 C++ 修饰符类型 C++ 存储类 C++ 数字 C++ 枚举 C++ 枚举类 C++ 引用 C++ 日期和时间

C++ 运算符

C++ 运算符 C++ 算术运算符 C++ 关系运算符 C++ 逻辑运算符 C++ 位运算符 C++ 赋值运算符 C++ sizeof 运算符 C++ 条件运算符 C++ 逗号运算符 C++ 成员运算符 C++ 强制类型转换运算符 C++ 指针运算符 C++ 运算符优先级 C++ 一元运算符

C++ 控制语句

C++ 决策语句 C++ if 语句 C++ if else 语句 C++ 嵌套 if 语句 C++ switch 语句 C++ 嵌套 switch语句 C++ 循环类型 C++ while 循环 C++ for 循环 C++ do while 循环 C++ Foreach 循环 C++ 嵌套循环 C++ break 语句 C++ continue 语句 C++ goto 语句

C++ 字符串

C++ 字符串 C++ 循环遍历字符串 C++ 字符串长度 C++ 字符串连接 C++ 字符串比较

C++ 函数

C++ 函数 C++ 多函数参数 C++ 递归函数 C++ 返回值 C++ 函数重载 C++ 函数重写 C++ 默认参数

C++ 数组

C++ 数组 C++ 多维数组 C++ 指向数组的指针 C++ 将数组传递给函数 C++ 从函数返回数组

C++ 结构 &联合

C++ 结构 C++ 联合

C++ 指针

C++ 指针 C++ 解引用 C++ 修改指针

C++ 类和对象

C++ 面向对象 C++ 类 &对象 C++ 类成员函数 C++ 类访问修饰符 C++ 静态类成员 C++ 静态数据成员 C++ 静态成员函数 C++ 内联函数 C++ this 指针 C++ 友元函数 C++ 指向类的指针

C++ 构造函数

C++ 构造函数 &析构函数 C++ 默认构造函数 C++ 参数化构造函数 C++ 复制构造函数 C++ 构造函数重载 C++ 带默认参数的构造函数 C++ 委托构造函数 C++ 构造函数初始化列表 C++ 使用构造函数动态初始化

C++ 继承

C++ 继承 C++ 多重继承 C++ 多级继承

C++ 面向对象

C++ 重载 C++ 多态性 C++ 抽象 C++ 封装 C++ 接口 C++ 虚函数 C++ 纯虚函数与抽象类

C++ 文件处理

C++ 文件和流 C++ 文件读取

C++ 进阶

C++ 异常处理 C++ 动态内存 C++ 命名空间 C++ 模板 C++ 预处理器 C++ 信号处理 C++ 多线程 C++ Web 编程 C++ 套接字编程 C++ 并发 C++ 高级概念 C++ Lambda 表达式 C++ unordered_multiset

C++ 实用资源

C++ 问答 C++ 快速指南 C++ 速查表 C++ STL 教程 C++ 标准库 C++ 实用资源 C++ 讨论


C++ 常量/字面量

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

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

同样,常量与常规变量类似,不同之处在于它们的值在定义后无法修改。

整型字面量

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

整数字面量还可以带有后缀,该后缀由 UL 组成,分别表示无符号和长整型。后缀可以是大写或小写,且顺序不限。

以下是一些整数文字的示例 -

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

以下是其他各种整数文字的示例 -

85 		// 十进制
0213 	// 八进制
0x4b 	// 十六进制
30 		// 整数
30u 	// 无符号整数
30l 	// 长整型
30ul 	// 无符号长整型

浮点数字面量

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

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

以下是一些浮点文字的示例 -

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

布尔字面量

布尔字面量有两个,它们是标准 C++ 关键字的一部分 -

  • 值为 true 表示真。

  • 值为 false 表示假。

不应将 true 的值视为 1,将 false 的值视为 0。

字符字面量

字符字面量用单引号括起来。如果字面量以 L(仅限大写)开头,则为宽字符字面量(例如,L'x'),应存储在 wchar_t 类型的变量中。否则,它是一个窄字符字面量(例如,'x'),可以存储在一个 char 类型的简单变量中。

字符字面量可以是普通字符(例如,'x')、转义序列(例如,' ')或通用字符(例如,'\u02C0')。

在 C++ 中,某些字符前面带有反斜杠时具有特殊含义,它们用于表示换行符 ( ) 或制表符 ( )。这里列出了一些这样的转义序列代码 -

转义序列 含义
\ \ 字符
\' ' 字符
\" " 字符
\? ?字符
\a 提醒或铃声
\b 退格键
\f 换页符
换行符
回车符
水平制表符
\v 垂直制表符
\ooo 一到三位数字的八进制数
\xhh . . . 一位或多位数字的十六进制数

示例

以下示例展示了一些转义序列字符 -

#include <iostream>
using namespace std;

int main() {
   cout << "Hello	World
";
   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 '
'

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 = '
';
   int area;  
   
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

当编译并执行上述代码时,它会产生以下结果 -

50

请注意,用大写字母定义常量是一种良好的编程习惯。