1. 指針的定義
指針保存的是所指向的對象的地址。
int a = 3; int *p = &a; // 定義一個指向×××數a的指針p,此處,int代表p是指向一個×××數的指針,*表明 // 當前定義的是一個指針,p的值為&a,即a的地址
上面的指針也可以這樣定義
int *p; p = &a;
2. 指針的指針
同理,我們可以定義一個指向指針的指針, 它保存的是所指向的指針的地址
int a = 3; int *p = &a; int **q = &p; //**說明是指向指針的指針
3. 指針內容的讀取
上面的程序中,指針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 |
創(chuàng)新互聯www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現已開啟,新人活動云服務器買多久送多久。
當前名稱:關于指針的一些理解-創(chuàng)新互聯
本文鏈接:http://chinadenli.net/article10/ddhpdo.html
成都網站建設公司_創(chuàng)新互聯,為您提供網頁設計公司、微信公眾號、企業(yè)網站制作、搜索引擎優(yōu)化、網站設計公司、網站改版
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯