一.指针数组
概念
-
概念:用来存放指针的数组;注意是——数组 !
-
区别:
int arr[10]={};//(1)
char ch[2]={};//(2)
int* parr[10];//(3)
char* pch[2];//(4)
- 第一组表示整型数组;
- 第二组表示字符数组;
- 第三组表示存放整型指针的数组;
- 第四组表示存放字符指针的数组;
简单代码
#include <stdio.h>
int main()
{
int arr1[]={1,2,3};
int arr2[]={2,3,4};
int arr3[]={3,4,5};
int i,j;
int*parr[]={arr1,arr2,arr3};
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%d",*parr[i]+j);
}
printf("\n");
}
return 0;
}
- 注意:
- 指针数组同样也可以存放数组名;
二.数组指针
概念
- 概念:指向数组的指针,用来存放数组的地址;
- 区别:
arr——首元素的地址;
&arr——首元素的地址;
&arr[0]——首元素的地址;
&arr——数组的地址;
一般格式
int arr[5]={};
char* (*parr)[5]=&arr;//数组指针的形式
- char*——parr指向的数组的元素类型;
- 括号中的 * 说明parr是指针,parr是指针变量的名字;
- [5]说明parr指向的数组是5个元素;
&数组名 与 数组名 的区别
-
&数组名 表示数组的地址;
-
数组名表示数组首元素的地址;
当两者加一的含义: -
&数组名 + 1 ——>跳过一个数组;
-
数组名 + 1——>跳过一个元素;