C语言中指针数组和数组指针

指针数组和数组指针多用于二维数组,此两者就将其理解为二维数组的另一种表达方式

指针数组:是一个数组,数组元素是地址值;例如 int arr1[],arr2[],arr[];int* parr[]={arr1,arr2,arr3};

[]说明 parr是一个数组,int* 就是它的类型,即这是一个存放int* 类型的指针的数组。

数组指针,是一个存放了一整个数组的地址的指针,例如 int arr[5]; int (*parr1)[5];

*parr 优先执行,说明parr是一个指针,int ,[5]说明指针指向的是int类型的数组,数组元素有五个

那么定义搞明白了,看上篇用指针给数组赋值/初始化得知,&arr和sizeof(arr)得的值是整个数组的大小。

那么,在普通指针中,arr[i] == *(arr+1) == *(p+i) == p[i]   {p是指针,arr是数组名}

在指针数组中parr[i] ==arr1[i];    parr[i]+j ==arr[i][j]

在数组指针中,arr[i][j]==*(*(parr1+i)+j) ==p[i][j]==(*(p+i))[j];

所以,简单实现一下二维数组用数组指针和指针数组来实现输出:

指针数组:

 数组指针:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值