首页 理论教育 C语言程序设计:二维数组行指针表示方法

C语言程序设计:二维数组行指针表示方法

时间:2023-10-29 理论教育 版权反馈
【摘要】:行指针依据的是二维数组的递归定义,可以把一个二维数组看成若干个行向量,每个行向量都是一个一维数组。二维数组行指针变量说明的一般形式为:类型说明符[长度]其中,“类型说明符”为所指数组的数据类型。“长度”表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。定义一个二维数组:int a[3][4],把这个二维数组的元素遍历出来。

C语言程序设计:二维数组行指针表示方法

指针依据的是二维数组递归定义,可以把一个二维数组看成若干个行向量,每个行向量都是一个一维数组。定义一个指向行向量的指针,称之为行指针。

二维数组行指针变量说明的一般形式为:

类型说明符 (*指针变量名)[长度

其中,“类型说明符”为所指数组的数据类型。“*”表示其后的变量是指针类型。“长度”表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。应注意“(*指针变量名)”两边的括号不可少,若缺少括号则表示是指针数组(本章后面将介绍),意义就完全不同了。

定义一个二维数组:int a[3][4],把这个二维数组的元素遍历出来。

1 #include<stdio.h>

2 void main()

3 {

4  int a[3][4]={{11,21,33,42},{15,22,32,13},{41,32,24,16}};(www.xing528.com)

5  int*p;

6  for(p=*a;p<*a+3*4;p++)

7   printf("%d",*p);

8  printf("\n");

9 }

二维数组a分解为一维数组a[0]、a[1]、a[2]之后,设p为指向二维数组的指针变量,即行指针。其定义格式为:

int(*p)[4];

它表示p是一个行指针变量,它指向包含4个元素的一维数组。由于“[]”的优先级高于“*”,用圆括号将*p括起来,让p先与*相结合,表明p是一个指针,然后再与[4]相结合,表明p指向一个含有4个元素的二维数组。若指向第一个一维数组a[0],其值等于a、a[0]或&a[0][0]等。而p+i则指向一维数组a[i]。从前面的分析可知,*(p+i)+j是二维数组i行j列的元素的地址,而*(*(p+i)+j)则是i行j列元素的值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈