"pointer to const int" 是否与“ const int* ”相同
Is "pointer to const int" same as " const int* "
我正在阅读有关指针的内容,并在一部分中感到困惑。给出的代码如下:
int i=0;
const int ci = i;
auto *p = &ci;`
现在的问题是 p
的类型是什么?我认为 p
将是一个指向 const int 的 指针。这个对吗?如果是,这是否等于 const int*?指向 const int
的指针与 const int*
相同吗?
在 C++ 中,const
关键字通常应用于其左侧的类型部分。
所以int const*
是一个指向常量整数的指针,int*const
是一个指向非常量整数的常量指针
您的示例中 p
的类型是 int const*
。
将 const
放在右边的习惯被称为 east const。
现在“const适用于左边”有了例外;当左边 nothing 时,它适用于右边。这个令人困惑的异常意味着 const int*
是 int const*
。但是 using X=int*; const X
变成了 int*const
.
将 const
放在左边的习惯,以及由此产生的混淆,被称为 west const。
简而言之,答案是肯定的,除非你添加别名。
I am thinking that p will be a pointer to const int.
是的,p
会是这样。
And if yes will this be equal to const int*
?
是:const int* p;
正是您将 p
定义为指向 const int
.
的指针的方式
以防万一你想知道,你可以 define/initialize 一个 const
指向(非常量)int
的指针,如下所示:
int* const cp = &i;
并且,对于指向 const int
的 const
指针,您需要两次 const
限定符:
const int* const cp = &ci;
我正在阅读有关指针的内容,并在一部分中感到困惑。给出的代码如下:
int i=0;
const int ci = i;
auto *p = &ci;`
现在的问题是 p
的类型是什么?我认为 p
将是一个指向 const int 的 指针。这个对吗?如果是,这是否等于 const int*?指向 const int
的指针与 const int*
相同吗?
在 C++ 中,const
关键字通常应用于其左侧的类型部分。
所以int const*
是一个指向常量整数的指针,int*const
是一个指向非常量整数的常量指针
您的示例中 p
的类型是 int const*
。
将 const
放在右边的习惯被称为 east const。
现在“const适用于左边”有了例外;当左边 nothing 时,它适用于右边。这个令人困惑的异常意味着 const int*
是 int const*
。但是 using X=int*; const X
变成了 int*const
.
将 const
放在左边的习惯,以及由此产生的混淆,被称为 west const。
简而言之,答案是肯定的,除非你添加别名。
I am thinking that p will be a pointer to const int.
是的,p
会是这样。
And if yes will this be equal to
const int*
?
是:const int* p;
正是您将 p
定义为指向 const int
.
以防万一你想知道,你可以 define/initialize 一个 const
指向(非常量)int
的指针,如下所示:
int* const cp = &i;
并且,对于指向 const int
的 const
指针,您需要两次 const
限定符:
const int* const cp = &ci;