![](/img/trans.png)
[英]Const pointer to pointer to const int casts to const pointer to pointer to int
[英]pointer to a const pointer to an int
有人可以在我的以下程序中向我解释一点我编写的以下程序是为了理解 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 可能包含某个指针的地址。
我不知道为什么我的代码有效:)
int * const
是“指向int
const
指针”。 int * const *
是一个“指针const
指向一个int
”。 类型2 是指向指针的指针。 更具体地说,它是指向const
指针的指针。 很好,因为您要指向( x
)的指针是const
。 由于x
的类型为1,采用x
的地址可以得到类型2的指针。
int * const **
会是一个“指针指向const
指针int
”。 计算有多少“指针”。 三! 实际上,如果使用&p
来获取p
的地址,那将是您得到的。
显然,您认为const
指针不是某种指针。 你错了。 const
只是不变性的指标。 因此,指向const
指针的指针就是指向该指针的指针
x
是int* const
类型,并且假设x
是某些ABC
类型。 因此指向x
指针被声明为ABC *p=&x;
相当于int* const *p=&x;
我认为这有助于直觉的陈述。 用pointer
替换*
并向后阅读语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.