指针数组
说明
顾名思义,指针数组描述的对象是一个数组,在此前提下,我们可以联想到字符串数组,整型数组,浮点型数组等。字符串数组指的是数组中的每个元素都是字符,整形、浮点型数组中每个元素都是整形的,浮点型的数字,指针数组中每个元素都是指针(地址)。指针数组是由若干个指针组成的数组,只不过这个数组里存放的是地址。
定义
int* arr[6]; //int型指针数组
char* arr[4]; //char型指针数组
数组指针
说明
数组指针,首先明确它是一个指针,然后再来谈它是什么类型的。指针包含很多种类型,包括指向那些最基本的数据类型如int,float,char,double等的指针,还有指向那些由基本数据类型组成的字符串、数组、结构的指针。所以说数组指针是一个指向数组的指针。
定义
int (*ptr)[10]; //由于[]的优先级高于*,所以必须添加括号.
char (*ps)[5]
如要将二维数组赋给一指针,应这样赋值:
int a[3][4];
int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。
p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]
p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]
所以数组指针也称指向一维数组的指针,亦称行指针。