![](/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.