第8章指针 8.4.2指针与二维数组 用指针可以指向一维数组,也可以指向二维数组 1.二维数组的地址 为了说明问题,我们定义以下二维数组: nta2][4]={{0,1,2,3},{4,56,7}; a为二维数组名,此数组有3行4列,共12个元素。但也可这 样来理解,数组a由二个元素组成:a[0],a[]。而它们中 每个元素又是一个一维数组,且都含有4个元素,例如, a[O所代表的一维数组所包含的4个元素为a[O[0], a[0[1],ao[2],a[0[3] Ba
第8章 指针 8.4.2 指针与二维数组 用指针可以指向一维数组,也可以指向二维数组。 1.二维数组的地址 为了说明问题, 我们定义以下二维数组: int a[2][4]={{0,1,2,3}, {4,5,6,7}}; a为二维数组名, 此数组有3行4列, 共12个元素。但也可这 样来理解, 数组a由二个元素组成: a[0], a[1]。而它们中 每个元素又是一个一维数组, 且都含有4个元素, 例如, a[0]所代表的一维数组所包含的 4 个元素为a[0][0], a[0][1], a[0][2], a[0][3]
第8章指针 如图82所示: [0] 04 23 5 7 图82a[0],a[1代表二维数组中的行 但从二维数组的角度来看,a代表二维数 组的首地址,当然也可看成是二维数组第0 行的首地址。a+1就代表第1行的首地址 如果此二维数组的首地址为1000,由于第0 有4个整型元素,所以a+1为1008。如图 8.3所示 Back
第8章 指针 如图8.2所示: 但从二维数组的角度来看, a代表二维数 组的首地址, 当然也可看成是二维数组第0 行的首地址。a+1就代表第1行的首地址。 如果此二维数组的首地址为1000, 由于第0 行有4个整型元素, 所以a+1为1008。如图 8.3所示 a[0] 0. 1 2 3 a[1] 4 5 6 7 图8.2 a[0],a[1]代表二维数组中的行
第8章指针 a0]+1a[0]+2 a0]+3 a 1000 1002 10041006 2 1008 1010 10121014 6 图8.3二维数组中的行地址和列地址示意图 二维数组元素a[订[可表示成*a[订+j)或 *(*(a+i)+j),它们都与a[i等价,或者还可写成 *(a+1)订]。见表8.1 Ba
第8章 指针 a[0] a[0]+1 a[0]+2 a[0]+3 a 1000 0 1002 1 1004 2 1006 3 a+1 1008 4 1010 5 1012 6 1014 7 图8.3 二维数组中的行地址和列地址示意图 二维数组元素a[i][j]可表示成*(a[i]+j)或 *(*(a+i)+j), 它们都与a[i][j]等价, 或者还可写成 (*(a+i))[j]。见表8.1
第8章指针 表8.1指针变量的含义及对应地址 表示方式 含义 地址 二维数组首地,0行首地1000 址 a[O]+0,*(a+0),*a 表第0行第0列元素地址1000 a+1,a[1] 第1行首地址 1008 a[+2.*(a+1)+2&a[l2]第行第2列元素地址 1012 tG+2)*(+(a+)+2,第行第2列元素的值 a[112] a[+)**(a+)+)订第行第列元素的值 Ba
第8章 指针 表8.1 指针变量的含义及对应地址 表示方式 含义 地址 a 二维数组首地,0行首地 址 1000 a[0]+0,*(a+0),*a 表第0行第0列元素地址 1000 a+1,a[1] 第1行首地址 1008 a[1]+2,*(a+1)+2,&a[1][2] 第1行第2列元素地址 1012 *(a[1]+2),*(*(a+1)+2), a[1][2] 第1行第2列元素的值 6 *(a[i]+j),*(*(a+i)+j),a[i][j] 第i行第j列元素的值
第8章指针 另外,要补充说明一下,如果你编写一个程序输出打 印a和*a,你可发现它们的值是相同的,这是为什么呢? 我们可这样来理解:首先,为了说明问题,我们把二维数 组人为地看成由两个数组元素aO],a[1]组成,将a0], a[看成是数组名它们又分别是由4个元素组成的一维 数组。因此,a表示数组第0行的地址,而*a即为a[0,它 是数组名,当然还是地址,它就是数组第0行第0列元素 的地址 Ba
第8章 指针 另外, 要补充说明一下, 如果你编写一个程序输出打 印a和*a, 你可发现它们的值是相同的, 这是为什么呢? 我们可这样来理解: 首先, 为了说明问题, 我们把二维数 组人为地看成由两个数组元素a[0], a[1]组成, 将a[0], a[1]]看成是数组名它们又分别是由4个元素组成的一维 数组。因此, a表示数组第0行的地址, 而*a即为a[0], 它 是数组名, 当然还是地址, 它就是数组第0 行第0列元素 的地址