差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版上一修订版两侧同时换到之后的修订记录 | ||
blog:cpp:basic_const [2022/04/17 23:03] – [顶层const] caodan | blog:cpp:basic_const [2022/04/23 22:34] – [constexpr 和常量表达式] caodan | ||
---|---|---|---|
行 61: | 行 61: | ||
更一般的,顶层const 可以表示任意对象是常量,这一点对任何数据类型都适用。 | 更一般的,顶层const 可以表示任意对象是常量,这一点对任何数据类型都适用。 | ||
- | 底层const则与指针和引用等复合类型的基本类型部分有关。 | + | |
+ | 例: | ||
+ | ``` | ||
+ | int i = 0; | ||
+ | int *const p1 = & | ||
+ | const int ci = 42; // 不能改变ci的值, 这是一个顶层const | ||
+ | const int *p2 = & | ||
+ | const int *const p3 = p2; // 靠右的const的顶层const, | ||
+ | const int &r = ci; // 用于声明引用的const都是底层const | ||
+ | ``` | ||
+ | |||
+ | ## constexpr 和常量表达式 | ||
+ | |||
+ | 尽管可以使用const 来定义常量表达式,例如: | ||
+ | |||
+ | ``` | ||
+ | const int max_files = 20; | ||
+ | const int limit = max_files + 1; | ||
+ | ``` |