簡體   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