[拾零]C语言的数组指针

为了强化记忆,从而写笔记保留。

数组指针,顾名思义,是在说一个指针,这个指针是指向数组的。

区别于指针数组

int* p[5] = NULL;  //指针数组   基类型 int*
int (*p)[5] = NULL;  //数组指针   基类型 int[5]

数组指针实例

int main()
{
    int arr[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
    int (*px)[2];  //定义一个宽度是2的数组指针
    px = (int (*)[2])arr;  //px是数组指针
    printf("%d\n", *(*px));  //打印结果是1,因为*px是数组,*(*px)是数组首元素
    printf("%d\n", *(*(px+0)+0));
    printf("%d\n", *(*(px+1)+1));  //打印结果是4,px+1移动8个字节,也就是2个int,即3的位置
    printf("%d\n", px[1][1]);  //打印结果是4
    return 0;
}

小结

 *() 与 [ ] 是可以互换的,也就是说*(*(p+1)+2)相当于p[1][2]

练习

使用数组指针遍历一个一维数组。

转载于:https://www.cnblogs.com/flatcc/p/7487706.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值