9.3.6 指针数组和数组指针

首先,在面试中有可能会问到“指针数组”和“数组指针”这两个概念的区别,也可能给出一段代码判断是指针数组还是数组指针,所以要注意学习。

1.指针数组

直接通过代码的形式看一看指针数组的定义:

如何理解上面这行定义呢?首先这是一个数组,数组中有10个元素,每个元素都是一个指针,所以这相当于定义了10个指针,分别为p[0]~p[9],这个感觉如图9.22所示(横着绘制,以节省空间)。

图9.22 指针数组int *p[10];

看看如下范例:

2.

数组指针

数组指针用的不算多,但也要做到基本掌握,以免在求职面试中变得被动。直接通过代码的形式看一看指针数组的定义:

这是一个指针变量,名字为p,这个指针变量用来指向含有10个元素的一维数组。这个感觉如图9.23所示。

图9.23 数组指针int (*p)[10];

借助如下两个范例,对数组指针有一个更深入的理解。代码范例一:

代码范例二:

上面范例代码最外层有两个for循环,把后一个for循环做适当修改,分析和感受一下:

后一个for循环再修改一下: