*8.7 指针数组和多重指针
8.7.1 什么是指针数组
一个数组,若元素均为指针类型数据,称为指针数组,也就是数组中的每一个元素都存放一个地址,相当于一个指针变量。下面定义一个指针数组。
int * p[4];
由于[]比*优先级高,因此p先与[4]结合,形成p[4]形式,这显然是数组形式,表示p数组有4个元素。然后与p前面的“*”结合,“*”表示此数组是指针类型的,每个数组元素(相当于一个指针变量)都可以指向一个整型变量。
注意不要写成 :int (*p) [4];这是指向一维数组的指针变量;
定义一维数组的一般形式为 : 类型名 * 数组名[数组长度];
类型名应该包括符号“*”,如 “int *”表示指向整型数据的指针类型。
什么情况下要用到指针数组呢?指针数组比较适合用来指向若干个字符串,使字符串处理更加灵活。例如,图书馆有若干个本书,想把书名放在一个数组中,然后要对这些书目进行排序和查询。