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