如何儲存指標位址 理解指標的指標

2021-06-26 15:46:04 字數 622 閱讀 7408

有這樣乙個問題就是如何使用乙個整數儲存乙個結構體或類以及其他型別的指標,這種需求在不同語言之間呼叫是存在的,例如有乙個結構體a:

struct a

;

需要使用乙個整數b,需要用b儲存這個結構體指標的位址(struct a* a = new a),使得b的值就是a的指向的位址,你可能會想直接b = a就可以了,但是編譯器都不會答應。因為型別不同,乙個是整數乙個是指向struct a的指標。

正確的方式如下:

unsigned int b  = 0;

struct a* a = new a;

*(struct a**)&b = a;

這樣b的值就是a指向的位址,這樣就可以利用b的值找到a指向的內容。

至於這一段怎麼理解,我說說個人的理解。

1、&b是取址操作,獲取b的位址

2、a**後面的*是指標變數的定義形式,沒有前面的*則表示這是乙個指向a的指標變數,加上前面的*表示它指向的是乙個a的指標型變數的

3、最外的的*是解引用操作,就是改變指向位置的值

簡單直白點就是將b的位址指向的位置轉化成指向a*的位址,並將該位址儲存的值改為要儲存的值。

如何理解指向指標的指標?

我在一篇教程中看到下面這段,它描述指向指標的指標是如何運作的。引用文章相關段落如下 int i 5,j 6,k 7 int ip1 i,ip2 j 現在我們可以這麼寫 int ipp ip1 那麼現在指標 ipp 指向了 ip1,ip1 指向了 i。ipp 就是 ip1,ipp 就是 i,或者說是 ...

如何理解指向指標的指標?

原文 我在一篇教程中看到下面這段,它描述指向指標的指標是如何運作的。引用文章相關段落如下 int i 5,j 6,k 7 int ip1 i,ip2 j 現在我們可以這麼寫 int ipp ip1 那麼現在指標 ipp 指向了 ip1,ip1 指向了 i。ipp 就是 ip1,ipp 就是 i,或者...

如何理解指標

指標可以說是c語言的一大難點,很多人都比較討厭指標。我個人學習c語言也有一段時間了,今天就指標做一點總結。在c語言中定義乙個簡單變數,例如int a 4,這個時候,就會在記憶體空間中開闢乙個4個位元組大小的空間,並且給這個變數賦值為4。這裡的int可以換成float double long都可以,只...