C++ 关键字

预计时间: 9分钟

在本教程中,我们将学习C++语言关键字,包括C++98/C++11/C++14/C++17/C++20/C++23标准中规定的保留字。

关键字是编程中使用的预定义保留字,对编译器具有特殊含义。 关键字是语法的一部分,不能用作标识符。

序号关键字描述
1alignasC++11 指定类型或对象的对齐要求
2alignofC++11 查询类型的对齐要求
3and相当于 && 运算符
4and_eq相当于 &= 运算符
5asm内联汇编块的声明
6autoC++11 之前是自动存储持续时间说明符,C++11带有尾随返回类型的函数声明,C++17 结构化绑定声明
7bitand相当于&运算符
8bitor相当于`
9bool类型:布尔类型
10break退出当前循环,与for,range-for,while,do-while配合使用
11case根据条件的值,将控制转移到多个语句中的一个
12catch将一个或多个异常处理程序与一个复合语句关联,在函数体周围建立异常处理程序
13char类型:字符类型
14char8_tC++20 用于 UTF-8 字符表示的类型,需要足够大以表示任何 UTF-8 代码单元(8 位)
15char16_tC++11 用于 UTF-16 字符表示的类型,需要足够大以表示任何 UTF-16 代码单元(16 位)
16char32_tC++11 用于 UTF-32 字符表示的类型,需要足够大以表示任何 UTF-32 代码单元(32 位)
17class类的声明,C++11 范围枚举类型声明
18compl按位取反,相当于 ~
19conceptC++20 声明命名类型要求
20const常量,类型限定符 ,也用于限定成员函数
21constevalC++20 指定一个函数是一个立即函数,也就是说,每次调用该函数都必须产生一个编译时常量
22constexpr指定变量或函数的值可以出现在常量表达式中
23constinit断言一个变量有静态初始化,即零初始化和常量初始化,否则程序是病态的
24const_cast在具有不同 cv ( const和volatile ) 限定的类型之间转换
25continue导致包围for、range-for、while或do-while循环体的剩余部分被跳过
26co_awaitC++20
27co_returnC++20
28co_yieldC++20
29decltypeC++11 检查实体的声明类型或表达式的类型和值类别
30defaultswitch 语句中作为默认 case 标签的声明
31delete销毁先前由new表达式分配的对象并释放获得的内存区域。释放函数作为类似运算符的函数的名称
32dodo-while 循环的声明
33double类型:双精度浮点型
34dynamic_cast类型转换表达式的声明
35elseif 语句作为替代分支的声明
36enum枚举类型的声明
37explicit显式说明符
38exportC++11之前用于标记已导出的模板定义,C++20将声明、声明组或另一个模块标记为由当前模块导出
39extern具有外部链接说明符的静态存储持续时间
40false布尔字面量
41float单精度浮点类型
42for作为循环的声明
43friend友元声明出现在类主体中,并授予函数或其他类访问友元声明出现的类的私有和受保护成员的权限
44goto将控制权转移到label指定的位置
45if有条件地执行另一个语句
46inlineC++11 命名空间的说明符,C++17 函数和变量的说明符
47int类型:基本整数类型
48long目标类型的宽度至少为 32 位
49mutable出现在任何类型说明符中,指定被声明对象或被命名类型的常量或易变性
50namespace命名空间
51new创建和初始化具有动态存储持续时间的对象,即其生存期不一定受其创建时的作用域限制的对象。
52noexceptC++11执行编译时检查,如果一个表达式被声明为不抛出任何异常返回 true
53not相当于 !
54not_eq相当于!=
55nullptrC++11空指针字面量
56operator重载操作符的声明,为用户定义类型的操作数自定义 C++ 运算符
57or相当于 `
58or_eq相当于 `
59private声明私有的成员
60protected声明受保护的成员
61public声明公共成员
62register提示编译器将对象放在处理器的寄存器中。
63reinterpret_cast通过重新解释底层位模式在类型之间进行转换。
64requiresC++20模板参数上指定常量表达式,在模板声明中,指定关联的约束
65return终止当前函数并将指定的值(如果有)返回给调用者
66short目标类型将针对空间进行优化,宽度至少为 16 位
67signed目标类型将具有符号表示
68sizeof查询对象或类型的大小,sizeof... 查询参数包中的元素个数
69static具有静态存储持续时间和内部链接的命名空间成员的声明
70static_assertC++11 执行编译时断言检查
71static_cast使用隐式转换和用户定义转换的组合在类型之间进行转换
72struct复合类型的声明, C++11 范围枚举类型的声明
73switch根据条件的值,将控制权转移到多个语句之一
74template声明模板
75this纯右值表达式,其值是隐式对象参数的地址
76thread_localC++11
77throw发出错误条件的信号并执行错误处理程序
78true布尔字面量
79try将一个或多个异常处理程序(catch 子句)与复合语句相关联
80typedef创建一个可以在任何地方使用的别名来代替(可能是复杂的)类型名称
81typeid查询某个类型的信息
82typename在模板的声明或定义中,声明从属限定名是一种类型
83union联合是一种特殊的类类型,一次只能保存一个非静态数据成员
84unsigned目标类型将具有无符号表示
85using命名空间的使用指令和命名空间成员的使用声明
86virtual指定非静态成员函数是虚拟的并支持动态调度
87void
88volatile指定被声明对象或被命名类型的易变性
89wchar_t类型:用于宽字符表示的类型
90while重复执行一条语句,直到条件的值变为 false
91xor相当于 ^
92xor_eq相当于 ^=
更新于2021年04月27日