繁体   English   中英

指向 const 的指针,指向 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 可能包含某个指针的地址。

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

  1. int * const是“指向int const指针”。
  2. int * const *是一个“指针const指向一个int ”。

类型2 指向指针的指针。 更具体地说,它是指向const指针的指针。 很好,因为您要指向( x )的指针是const 由于x的类型为1,采用x的地址可以得到类型2的指针。

int * const **会是一个“指针指向const指针int ”。 计算有多少“指针”。 三! 实际上,如果使用&p来获取p的地址,那将是您得到的。

  • 要存储一个指针,您需要一个指针

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

xint* const类型,并且假设x是某些ABC类型。 因此指向x指针被声明为ABC *p=&x;

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

我认为这有助于直觉的陈述。 pointer替换*并向后阅读语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM