加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

關(guān)于指針數(shù)組和數(shù)組指針的理解與測試

05/20 12:50
917
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

先簡單說一下兩個的概念,

指針數(shù)組:是一個數(shù)組,數(shù)組中的每個元素都是指針,例如 char *p[3];

數(shù)組指針:是一個指針,指向數(shù)組,例如 int (*q)[3];

測試代碼:

#include <stdio.h>
int main(){  int i=0;      char a=12,b=34,c=56;??char?*p[3]={&a,&b,&c};?//指針數(shù)組    char y[]={1,2,3,4,5};  char (*q)[5]=&y;       //數(shù)組指針    int z[]={6,7,8,9,10};  int (*r)[5]=&z;        //數(shù)組指針    for(i=0;i<3;i++)    printf("p[%d]=%d, ",i,*p[i]);  printf("p=%p,p+1=%prn",p,p+1);  printf("sizeof(p)=%ldrn",sizeof(p));  printf("rnrn");    for(i=0;i<5;i++)    printf("y[%d]=%d, ",i,*(*q+i));  printf("q=%p,q+1=%prn",q,q+1);  printf("sizeof(q)=%ldrn",sizeof(q));  printf("rnrn");    for(i=0;i<5;i++)    printf("z[%d]=%d, ",i,*(*r+i));  printf("r=%p,r+1=%prn",r,r+1);  printf("sizeof(r)=%ldrn",sizeof(r));  printf("rnrn");    return 0;}

在64位windows下運行結(jié)果如下:

p[0]=12, p[1]=34, p[2]=56, p=0x7ffc08409000,p+1=0x7ffc08409008sizeof(p)=24
y[0]=1, y[1]=2, y[2]=3, y[3]=4, y[4]=5, q=0x7ffc08409023,q+1=0x7ffc08409028sizeof(q)=8
z[0]=6, z[1]=7, z[2]=8, z[3]=9, z[4]=10, r=0x7ffc08408fe0,r+1=0x7ffc08408ff4sizeof(r)=8

通過獲取各個指針的大小可以發(fā)現(xiàn),windows指針大小占用8個字節(jié),p是指針數(shù)組,且有三個元素,所以占用大小是3*8=24個字節(jié);q和r分別是char和int類型的數(shù)組的指針,所以都只占用8個字節(jié)。

所以,指針數(shù)組是某一類指針的合集,是一個數(shù)組;

數(shù)組指針僅僅是一個指針,指向數(shù)組。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
74HC00D 1 Nexperia NAND Gate

ECAD模型

下載ECAD模型
$0.81 查看
SN74LVC1G08DCKR 1 Rochester Electronics LLC AND Gate,
$0.23 查看
AS6C2016-55ZIN 1 Alliance Memory Inc Standard SRAM, 128KX16, 55ns, CMOS, PDSO44, 0.400 INCH, GREEN, TSOP2-44

ECAD模型

下載ECAD模型
$2.76 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

公眾號:物聯(lián)網(wǎng)思考;主要記錄、分享、思考開發(fā)中遇到的技術(shù)小細節(jié),涉及嵌入式單片機、C語言、傳感器、低功耗物聯(lián)網(wǎng)等。偶爾也可能是程序員健康、職場潛規(guī)則、生活思考、行業(yè)討論。