您好,登錄后才能下訂單哦!
1. 指針的定義
指針保存的是所指向的對(duì)象的地址。
int a = 3; int *p = &a; // 定義一個(gè)指向×××數(shù)a的指針p,此處,int代表p是指向一個(gè)×××數(shù)的指針,*表明 // 當(dāng)前定義的是一個(gè)指針,p的值為&a,即a的地址
上面的指針也可以這樣定義
int *p; p = &a;
2. 指針的指針
同理,我們可以定義一個(gè)指向指針的指針, 它保存的是所指向的指針的地址
int a = 3; int *p = &a; int **q = &p; //**說(shuō)明是指向指針的指針
3. 指針內(nèi)容的讀取
上面的程序中,指針p的值是a的地址,我們想通過(guò)p來(lái)得到a的值,則用*p; 通過(guò)q來(lái)獲取a的值,則用**q。
printf("a's address is: %p.\n", &a); printf("p's value is: %p.\n", p); //地址的占位符都是%p printf("p 指向的對(duì)象的值: %d.\n", *p); printf("p's address is : %p.\n", &p); printf("q's value is: %p.\n", q); printf("q 指向的指針的值: %p.\n", *q); printf("q 指向的指針指向的對(duì)象的值: %d.\n", **q);
上面代碼的輸出:
a's address is: 0x7fff5bce5a9c.
p's value is: 0x7fff5bce5a9c.
p 指向的對(duì)象的值: 3.
p's address is : 0x7fff5bce5a90.
q's value is: 0x7fff5bce5a90.
q 指向的指針的值: 0x7fff5bce5a9c.
q 指向的指針指向的對(duì)象的值: 3.
實(shí)際上就是說(shuō):
a == *p == **q;
&a == p == *q;
&p = q;
ID: | q | p | a |
地址: | &q | &p | &a |
值: | &p | &a | 3 |
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。