指向int的const指针的指针

时间:2013-05-23 18:06:08

标签: c++ pointers const

有人可以在我的下一个程序中向我解释一点 我写的以下程序是为了理解int * const * var;

的含义
#include "iostream"

using namespace std ;

int main(){

int a = 2;

int  * const   x = &a;
int * const * p = &x;

cout << **p;
return 0;
}

该程序的输出为2。

我关注的是p指向一个指向int的常量指针,这是我使用它的方式,但我总是研究存储指针需要指针指针。那个程序怎么样呢?我不应该使用

int * const **P

因为这意味着P可能包含某个指针的地址。

我不知道为什么我的代码有效:)

3 个答案:

答案 0 :(得分:5)

  1. int * const是指向const“的int指针。
  2. int * const *是“指向const的{​​{1}}指针”。
  3. 类型2 指向指针的指针。更具体地说,它是指向int指针的指针。这很好,因为你想指向的指针(const)是x。由于const的类型为1,因此获取它的地址会为您提供类型为2的指针。

    x将是“指向int * const **指向const的指针”。计算有多少“指针”。三!事实上,如果您使用int获取p的地址,那就是您所获得的。

答案 1 :(得分:2)

  • 存储指针需要指向指针的指针

显然你认为const指针不是指针。你错了。 const只是不变性的指标。 因此,指向const指针的指针是指向

指针

答案 2 :(得分:0)

x的类型为int* const,并假设x的类型为ABC。 所以指向x的指针被声明为ABC *p=&x;

相当于int* const *p=&x;