一、数组指针
1.特点及功能:
数组指针用于指向一个数组;
数组名是数组首元素的起始地址,但并不是数组首元素的起始地址;
通过将取地址符&作用于数组名可以得到数组的起始地址;
如:int a[5]={1,2.3.4.5};
int *a; //a指首元素的起始地址,不能代表整个数组的地址
int*(&a)//&a指整个数组的起始地址
2.数组指针的定义
a、通过数组类型定义数组指针:ArrayType* pointer;
例: typedef int (A)[5]; //定义数组的类型 A
A* H; //定义数组的指针
b、直接定义:type(*pointer)[n];
例:char(*H)[10];
pointer为数组指针变量名;
type为指向的数组的类型;
n为指向的数组的大小;
二、指针数组
1.特点:
指针数组是一个普通的数组;
指针数组中每个元素为一个指针
2.指针数组的定义:
type* pArray[n];
例:int* A[10];
type* 为数组中每个元素的类型
pArray为数组名
n为数组的大小
三、总结:
数组指针本质上是一个指针,数组指针指向的值是数组的地址;
指针数组本质上是一个数组,指针数组中每个元素的类型都是指针;