有人可以在我的下一个程序中向我解释一点 我写的以下程序是为了理解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可能包含某个指针的地址。
我不知道为什么我的代码有效:)
答案 0 :(得分:5)
int * const
是指向const
“的int
指针。int * const *
是“指向const
的{{1}}指针”。类型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;