Double pointer

雙重指標

一般指標範例

int main(){

    int a = 10;     

    int  *ptr = &a; //*ptr存a的位址

}

以下為各個變數解說

a      的值10

&a    位址 0x000a

*ptr  指向a位址的值   就是10

ptr    為a的位址 0x000a

&ptr  本身的位址 0x000ptr

但若要存*ptr的位址,  該怎麼做呢

int main(){

     int a = 10;

     int *ptr = &a;

     int **ptr2 = &ptr;  //這就是雙重指標

 }

以下為各個變數解說

a      值等於10

&a    為0x000a

*ptr  指向a位址的值   就是10

ptr    為a的位址 0x000a

&ptr  本身的位址 0x000ptr

ptr2     為ptr的位址為 0x000ptr  

*ptr2   為透過0x000ptr再指向的值為 0x000a

**ptr2 經由 0x000a指向值為 10

&ptr2   為本身的位址0x000ptr2

牢記最初的讀法

雙重指標就很好了解了

Reference:

http://openhome.cc/Gossip/CppGossip/DoublePointer.html

發表留言

透過 WordPress.com 建置的網站.

向上 ↑

Yosing'sDailyPractice

是練習,也是實踐

portran

Explore the life truth and beauty

使用 WordPress.com 設計專業網站
立即開始使用