区分数组指针和指针数组

1、

数组指针:能够指向数组的指针。顾名思义,它是指针并且它指向数组。

例如我们定义了一个一维数组:int arr[10],我们对整个数组取地址 &arr,此时如果要用指针指向它,必须使用数组指针。

那数组指针需要如何定义?

数组指针的定义:int(*p)[10];

那么此时就能写成 p=&arr。如果是p=arr;这是错的。

注意:如果我们只定义了一个基本的指针

(in* p;那么此时p=arr;或者p=&arr[0];)

int main()
{
	int(*p)[10];
	int arr[10]={0};
	p = &arr;
}

2、

指针数组:存放指针的数组。顾名思义,他是数组,他里面存放的是指针。

那指针数组需要如何定义?

数组指针的定义:int* p[10];

int mian()
{
	int* p1;
	int* p2;
	int* p3
	int* p[10]={p1,p2,p3};
}

3、

初学者很容易将他们两个的代码写错,那我们该如何让记住

int(*p)[10];和int* p[10];

这里我们就要考虑结合性的问题:[]的结合性大于*;所以就需要加上()来保证p先和*结合。

int mian()
{
	
	int(*p)[10];//数组指针
	int* p[10];//指针数组
}

 这里只是做了简单的介绍,让大家能够区分数组指针,和指针数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘小小@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值