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];//指针数组
}
这里只是做了简单的介绍,让大家能够区分数组指针,和指针数组。