1. 指針的定義
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),鳳慶企業(yè)網(wǎng)站建設(shè),鳳慶品牌網(wǎng)站建設(shè),網(wǎng)站定制,鳳慶網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,鳳慶網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
指針保存的是所指向的對象的地址。
int a = 3; int *p = &a; // 定義一個指向×××數(shù)a的指針p,此處,int代表p是指向一個×××數(shù)的指針,*表明 // 當前定義的是一個指針,p的值為&a,即a的地址
上面的指針也可以這樣定義
int *p; p = &a;
2. 指針的指針
同理,我們可以定義一個指向指針的指針, 它保存的是所指向的指針的地址
int a = 3; int *p = &a; int **q = &p; //**說明是指向指針的指針
3. 指針內(nèi)容的讀取
上面的程序中,指針p的值是a的地址,我們想通過p來得到a的值,則用*p; 通過q來獲取a的值,則用**q。
printf("a's address is: %p.\n", &a); printf("p's value is: %p.\n", p); //地址的占位符都是%p printf("p 指向的對象的值: %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 指向的指針指向的對象的值: %d.\n", **q);
上面代碼的輸出:
a's address is: 0x7fff5bce5a9c.
p's value is: 0x7fff5bce5a9c.
p 指向的對象的值: 3.
p's address is : 0x7fff5bce5a90.
q's value is: 0x7fff5bce5a90.
q 指向的指針的值: 0x7fff5bce5a9c.
q 指向的指針指向的對象的值: 3.
實際上就是說:
a == *p == **q;
&a == p == *q;
&p = q;
ID: | q | p | a |
地址: | &q | &p | &a |
值: | &p | &a | 3 |