本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
cs:programming:cpp:courses:cpp_basic_deep:chpt_2 [2024/08/11 03:41] – [extern keyword] codinghare | cs:programming:cpp:courses:cpp_basic_deep:chpt_2 [2024/08/11 03:50] (当前版本) – [常量表达式指针] codinghare | ||
---|---|---|---|
行 242: | 行 242: | ||
==指针的引用== | ==指针的引用== | ||
* 指针是对象,因此存在指针的引用: | * 指针是对象,因此存在指针的引用: | ||
- | * 引用不是对象,因此不存在引用的应用 | + | * 引用不是对象,因此不存在引用的引用 |
<code cpp> | <code cpp> | ||
int* &refPx = ptr; | int* &refPx = ptr; | ||
行 305: | 行 305: | ||
// y1 是在运行期确定的(运行期常量) | // y1 是在运行期确定的(运行期常量) | ||
const int y1 = y; | const int y1 = y; | ||
- | // y2 是在编译期确定的(编译器常量) | + | // y2 是在编译期确定的(编译期常量) |
const int y2 = 3; | const int y2 = 3; | ||
</ | </ | ||
行 311: | 行 311: | ||
* '' | * '' | ||
* '' | * '' | ||
- | 也就是说,编译器常量是可以被编译器优化的。这也是常量表达式的由来:C++ 11 中通过 '' | + | 也就是说,编译器常量是可以被编译器优化的。这也是常量表达式的由来:C++ 11 中通过 '' |
<code cpp> | <code cpp> | ||
// y2 被显式的声明为编译期常量 | // y2 被显式的声明为编译期常量 | ||
行 319: | 行 319: | ||
</ | </ | ||
==常量表达式指针== | ==常量表达式指针== | ||
- | 指针也可以作为编译器常量。这种情况下,需要满足两个条件: | + | 指针也可以作为编译期常量。这种情况下,需要满足两个条件: |
* 指针是常量 | * 指针是常量 | ||
* 指针指向的内容也是常量 | * 指针指向的内容也是常量 | ||
- | 只有满足这两个条件,指针才能作为编译器常量对编译器可见。也就是说,这种情况下的指针类型是 '' | + | 只有满足这两个条件,指针才能作为编译期常量对编译器可见。也就是说,这种情况下的指针类型是 '' |
<code cpp> | <code cpp> | ||
constexpr const int* ptr = nullptr; | constexpr const int* ptr = nullptr; |