位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 二维数组的指针

提问人:刘团圆发布时间:2020-12-01

二维数组可以看作特殊的一维数组,即,可以理解成数组的数组。例如有如下数组定义语句:

    int  a[3][4]={{1,3,5,7},{9,11,13,15}, {17,19,21,23}};

    可以把二维数组看成一个特殊的一维数组,数组名a代表数组的起始地址,而其第一个元素a[0]也是一个数组---包含4个int数据的一维数组,所以该二维数组a是由三个“特殊的”元素组成的一个“特殊的”一维数组。a[0]、a[1]、a[2]分别代表该数组中的三个元素(三行)。

    数组名a是这个“特殊的” 一维数组的数组名,也是该数组的首地址,同样也代表该数组的第一个元素的地址,即第一行的首地址。对于第一行的首地址来说,它代表着首行一整行(其中包含4个元素),而不是指某个具体元素。所以,可以将第一行的首地址(a)称为“行指针”。同理,a+0, a+1, a+2都是行指针。如图所示。

2000



40]


2008

a[1]

a+2

2016

o[2]

1

3

5

7

9

11

13

15

17

19

21

23

    接下来,接着看二维数组中每一行的构成,以首行为例,首行的元素分别是a[0][0], a[0][1], a[0][2], a[0][3]。因为前面已经说过,将第一行看成一个整体,a[0]就是这个数组的名称,也是这个数组的首地址,也就是第一个元素a[0][0]的地址,所以可以写成a[0]+0,它指向该行的第0列元素。这个指针每移动一次,从第0列移动到第1列。所以它是一个以数组元素为单位进行控制的列指针。即a[0] 和a[0]+0都是指具体的元素,所以可将其称之为“列指针”。

    这里就提出了在二维数组中的两个重要概念:行指针和列指针。


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部