这是一个新手 C++ 问题。以下两种构造有什么区别?
1. const int* const* const x
2. const int**
我如何阅读这些结构?
我如何阅读这些结构?
向后阅读它们并将其阅读*
为“指向”。
const int* const* const
是一个指向整数常量的常量指针。
const int**
是一个指向整数常量的指针。
如果您以正确的方式对事物进行分组,它会变得容易一些。例如,*const
真的是一个单位,意思是“const 指针”(您可以在const
这里将 读作下标:)。我会把它写成:*const
const int *const *const p1; // p1 is a const pointer to const pointer to const int
const int **p2; // p2 is a pointer to pointer to const int
还要记住,声明从被声明的标识符开始读为“由内而外”。
有一个工具对破译声明很有用/很有趣:http: //cdecl.ridiculousfish.com/
在您的情况下,它报告:
const int* const* const x
=> 将 x 声明为指向 const int 的 const 指针
const int** x
=> 将 x 声明为指向 const int 的指针