目录
1、指针数组的定义
所谓指针数组是指由若干个具有相同存储类型和数据类型的指针变量构成的集合。
指针数组的一般说明形式:
<存储类型><数据类型>*<指针数组名>[<大小>];
指针数组名表示该指针数组的起始地址
声明一个指针数组:
double *pa[2],a[2][3];
把一维数组a[0]和a[1]的首地址分别赋予指针变量数组的数组元数pa[0]和pa[1]:
pa[0]=a[0] ;// 等价pa[0] = &a[0][0];
pa[1]=a[1];// 等价pa[1] = &a[1][0];
此时pa[0]指向了一维数组a[0]的第一个元素a[0][0],而pa[1]指向了一维数组a[1]的第一个元素a[1][0]。
案例1
#include <stdio.h>
int main(int argc, char *argv[])
{
int *p[3];// int * p[0] p[1] p[2]
int a[]={1,3,2,5,3};
p[0]=a;
p[1]=a+1;
p[2]=a+3;
printf("%d %d %d\n",a[0],a[1],a[3]);
printf("%d %d %d\n",*(p[0]),*(p[1]),*(p[2]));
return 0;
}
运行结果:
案例2
2、指针数组的赋值与初始化
案例3:![](https://i-blog.csdnimg.cn/blog_migrate/c1d2a2749cb65cef561f0229e98b215e.png)
3、程序举例
利用指针数组处理一个二维数组,要求求出二维数组所有元素的和。