什么是数组指针,什么是指针数组,咋一听这两个名词是有点混淆,其实很好区分。只要关注最后两个字就行了。数组指针就是指针,指针数组就是数组,下面会详细介绍两者的含义这里就不坐过多解释了。
浅谈指针数组:指针数组,顾名思义,本质就是数组,其中的每一个元素都是指针类型。
例如,定义一个数组arr[5]={&a,&b,&c,&d,&e}。
简而言之就是数组里面装的都是装着地址的变量即指针。
数组指针 :
其实说起来也很简单,本质是一个指针变量,保存数组的起始地址。
数据指针的语法:
每个元素的型(*p)[元素个数]
int (*p)[8] :这就表示p是一个指针变量,保存8个元素,每个元素是整型的数组的起始地址。
#include<stdio.h>
int main()
{
int a[10];
int (*p)[10];
return 0;
}
下面是重点:关于二维数组的。
重点重点重点:定义一个二维数组
int a[i][j];
p:是一个数组的指针,保存二维数组第一行的起始地址。
p+i:第i+1行的起始地址。
*(p+i):每一行第一个元素的起始地址。
*(p+i)+j :每一行每一个元素的起始地址。
*(*(p+i)+j):每一行的每一个元素。