Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是";指向常量int的指针;同「;常数int*”;_C++_Pointers_Constants_Auto - Fatal编程技术网

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;