1、先看一下指针访问一维数组的方法,直接将数组名赋给指针变量,即可通过指针访问数组元素。
2、看下面图片中的一个指针访问二维数组的示例,这是一个典型的错误。编译会报类型转换警告,可以编译通过,但是运行就报段错误了。
3、上述问题的分析:想当然的套用指针访问一维数组的方法,预期打印出的是1和6,结果却是段错误,访问了不该访问的哪纳紧萄地址空间。iArray是个二维数组变量名,而它的值就是整个数组的开始地址(在编译过程中编译器赋予的值)。将iArray赋给pArray之后,其实*pArray就已经是iArray[0][0]的值了,也就是1,而**pArray则是去访问地址为1的地址空间中的数据,自然会出段错误。
4、其实用指针访问二维数组可以直接用一级指针就可以了,比如下面这个程序。
5、我们还可以用指向数组的指针来访问二维数组,比如下面这个程序。
6、如果非得用二级指针来访问二维数组的话,我们还得借用指针数组(数组内存储的都是指针类型的数据),比如下面这个程序。