指针数组和数组指针

指针数组:

定义:int *a[10];

区分:首先要知道[]的优先级别高于*,所以a先与[]组合成常见的数组。然后与前面的int*组合成数组中装的元素的类型。我们常见的就只是int,他就只是一个普通的int类型,这里加上了*就表示是指针,也就是说它是个数组,里面装的是int型的指针,也就是指针数组。

使用:a[0],a[1]表示取数组元素,但是是指针类型,所以a[0],a[1]表示的是指针所指向的地址,*a[0]才表示数组第一个指针元素指向地址的数据值。

作用:可以保存很多一级指针变量,作为一个集合来管理使用。

数组指针:

定义:int (*a)[10];

区分:首先由于有()的存在,它的优先级最高,所以很明显它和a组合成一个指针(*a),再看前面的int和后面的[10],组合成一个带有10个int型的数组。所以,称为数组指针。

           它不同于常见一级指针的区别是,常见的一级指针都只是指向一个比如int型的变量,它指向的是一个一维数组。所以常见指针++的跨度是数据类型的字节数,比如4。而他的跨度是int[10],也就是10*4=40。

使用:通常用来指向一个二维数组b[3][10];a = b。然后就可以通过像访问普通二维数组一样访问这个数组指针,即a[0][0] = b[0][0] ,就表示第0行第0列的元素值。但需要注意的是a表示b[0],也就是第0行第0列元素的地址,a++后就变成了a[1],表示第1行第1列元素的地址。

作用:可以用来指向一个二维数组,通过它来实现对二维数组的访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值