数组指针和指针数组
定义:
数组指针:数组指针可以看作数组的指针,首先明确它是一个指针,指针中放着一个数组的首元素地址。
指针数组:指针数组可以看作指针的数组,首先明确它是一个数组,这个数组中放着的元素都是指针。
使用:
数组指针:
我们定义一个3*4的二维数组,因为按照行优先原则,我们依次放入1->12:
下面我们将这个二维数组传参给定义的数组指针:
这里arr是个二维数组的数组名,相当于一个二级指针常量。
p是一个指针变量,它指向包含4个int元素的一维数组。
*(p+i)是一维数组arr[i][0]的地址
*(p+2)+3是一维数组的arr[2][3]地址
*(*(p+2)+3)表示arr[2][3]的值
现在我们输出1行2列,2行3列,3行4列的值试一试:
代码如下:
这里我们把第二个分析一下:
指针数组:
我们定义一个指针数组
这里的arr作为数组名,也为这个指针数组首元素的地址
arr[i]=*(arr+i)
现在我们输出这4个字符串常量:
因为arr[i]=*(arr+i)
所以:
现在我们将数组指针和指针数组结合来看
同样处理一个问题:输出自己的名字 QUAN WU DI
数组指针:
指针数组:
我们可以看到 数组指针和指针数组各自处理问题的方法,在某些方面它们其实是相通的。