1.指针数组:
int *a[5];
char *str[5];
指针数组主要用来操作字符串数组,通过将指针数组的每个元素存放字符串的首地址实现对多个字符串的操作
二维数组主要用来存储字符串数组,通过每行存储一个字符串,多行存储多个字符串所组成的数组
具体如下:
#include<stdio.h>
int main(void)
{
int a[5] = {1,2,3,4,5};
int (*p)[5] = NULL;
int i = 0;
p = &a;
printf("%p\n",a);
printf("%p\n",p);
for(i = 0;i < 5;i++)
{
printf("%d\n",*(*p + i));
}
return 0;
}
1,数组指针,指针,数据之间的关系
int a[m][n] = {0};
数组指针 第一组第一个元素首地址 a a
指针 第一个元素首地址 a[m] *(a+m)
数据 第一个元素 a[m][n] *(*(a+m)+n)
2.指针和二维数组的关系:
int a[2][3] = {0};
int *p = NULL;
int (*q)[3] = NULL;
p = &a[0][0];
p = a[0];