我在阅读有关指针的文章,并在其中感到困惑。给出的代码如下:
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适用于左侧”例外;当左边没有东西时,它适用于右边。这种混乱异常意味着const int*
是int const*
。但是using X=int*; const X
变成了int*const
。
const
左撇子的习惯以及由此引起的混乱,被称为西常量。
简而言之,除非您添加别名,否则答案是肯定的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句