C++ 是";指向常量int的指针;同「;常数int*”;
我正在读指针的书,有一部分我感到困惑。代码如下:C++ 是";指向常量int的指针;同「;常数int*”;,c++,pointers,constants,auto,C++,Pointers,Constants,Auto,我正在读指针的书,有一部分我感到困惑。代码如下: int* const cp = &i; inti=0; const int ci=i; 自动*p=&ci` 现在的问题是p的类型是什么?我认为p将是指向const int的指针。这是正确的吗?如果是,这是否等于常量int*?是一个指向 const int 的指针,与C++中的代码> const int *//> > < p>相同,“ const < /Cord>”关键字一般适用于该类型的左边部分。 因此,int*const*是指向常量
int* const cp = &i;
inti=0;
const int ci=i;
自动*p=&ci`
现在的问题是
p
的类型是什么?我认为p
将是指向const int的指针。这是正确的吗?如果是,这是否等于常量int*?是一个指向<代码> const int 的指针,与C++中的代码> const int *//> > < p>相同,“<代码> const < /Cord>”关键字一般适用于该类型的左边部分。
因此,int*const*
是指向常量整数的指针,int*const
是指向非常量整数的常量指针
在您的示例中,p
的类型是int const*
把const
放在右边的习惯称为east const
现在“const适用于左边”有一个例外;当左侧没有任何内容时,它将应用于右侧。这个令人困惑的异常意味着int*
是int-const*
。但是使用X=int*;常量X
变为int*const
把const
放在左边的习惯,以及由此产生的混乱,被称为west const
简而言之,答案是肯定的,除非添加别名
我认为p将是指向const int的指针
是的,这就是p
的含义
如果是,这是否等于const int*
是:const int*p
正是您将p
定义为指向const int
的指针的方式
如果您想知道,您可以定义/初始化指向(非常量)int
的const
指针,如下所示:
int* const cp = &i;
对于指向const int
的const
指针,您需要使用const
限定符两次:
const int*const cp=&ci;