数组指针 和 指针数组

最近发现公司有些人说怎样区分 数组指针  和   指针数组 ? 其实 很简单;


数组指针, 先是(定语 ) (主体), (定语  数组)  + (主体  指针) ,就说明, 这是一个指针 (主体  指针),  指向的是一个 (定语  数组);


例如:

int a[3][4];
int (*p)[4] = a;   //  p 是数组指针,  p指向的是a数组,并把a[0] 赋值给  p;

p++;  //  p++ 后p指向 a[1]

p++;  //  p++ 后p指向 a[2]



指针数组,按  先是(定语)   (主体),  (定语  指针)  (主体  数组)  ,就说明, 这是一个  数组,  数组中的每个元素都是指针;


int  a[4],b[8],c[12],d[20];

int  *p[4];  //指针数组,  数组中的每个元素都是指针;


p[0]  = a;

p[1] = b;

p[2] = c;

p[3] = d;



增加使用实例:

    int a[3][4]= {0,1,2,3,4,5,6,7,8,9,10,11};
    int *p[3] = {(int*)a,(int*)(a+1),(int*)(a+2)};
    int (*p2)[4]  = a;
    printf("%d\n",p[2][3]);

    printf("%d\n",p2[2][3]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值