指针类型的数组
定义数组的时候,我们需要指定数组中存放元素的类型。例如:
intarray[6];//定义数组,数组有6个元素,元素是int类型;
chararray[6];//定义数组,数组有6个元素,元素是char类型;
doublearray[6];//定义数组,数组有6个元素,元素是double类型;
可以看到,在数组名前面的“数据类型”,就是定义了数组存放元素的类型。那么,学习了指针之后,我们知道指针也是一种数据类型,例如:
int*p;//定义指针变量p,变量是int*类型;
char*p;//定义指针变量p,变量是char*类型;
那么,如果我们要把指针变量p存放到一个数组里面,那么,数组元素的类型就是指针变量类型。例如:
int*array[6];
此时,定义array数组,数组有6个元素,元素是int*类型;那么,数组元素是指针类型的数组,我们称为:指针数组。指针数组的定义格式如下:
数据类型名*数组名[数组长度];
此时,定义一个数组,数组中元素的类型是“数据类型名*”,是一个指针类型。下面是程序测试例子:
程序运行结果如下:
可以看到,我们定义了array[]数组,数组的元素类型是int*类型,是整形指针类型;所以,数组的元素可以存放一个整形变量的地址,我们把变量x,y,z的地址都赋值给array[]数组的元素。最后,遍历数组,取出数组中的每一个元素;由于元素是一个指针,所以,通过指针降级运算符*来操作,获取指针所指向变量的值。