C语言中使用指针访问二维数组

时间:2024-10-15 23:28:29

1、先看一下指针访问一维数组的方法,直接将数组名赋给指针变量,即可通过指针访问数组元素。

C语言中使用指针访问二维数组
C语言中使用指针访问二维数组

2、看下面图片中的一个指针访问二维数组的示例,这是一个典型的错误。编译会报类型转换警告,可以编译通过,但是运行就报段错误了。

C语言中使用指针访问二维数组
C语言中使用指针访问二维数组

3、上述问题的分析:想当然的套用指针访问一维数组的方法,预期打印出的是1和6,结果却是段错误,访问了不该访问的哪纳紧萄地址空间。iArray是个二维数组变量名,而它的值就是整个数组的开始地址(在编译过程中编译器赋予的值)。将iArray赋给pArray之后,其实*pArray就已经是iArray[0][0]的值了,也就是1,而**pArray则是去访问地址为1的地址空间中的数据,自然会出段错误。

C语言中使用指针访问二维数组
C语言中使用指针访问二维数组

4、其实用指针访问二维数组可以直接用一级指针就可以了,比如下面这个程序。

C语言中使用指针访问二维数组
C语言中使用指针访问二维数组

5、我们还可以用指向数组的指针来访问二维数组,比如下面这个程序。

C语言中使用指针访问二维数组
C语言中使用指针访问二维数组

6、如果非得用二级指针来访问二维数组的话,我们还得借用指针数组(数组内存储的都是指针类型的数据),比如下面这个程序。

C语言中使用指针访问二维数组
C语言中使用指针访问二维数组
© 手抄报圈