二维数组在概念上是二维的,即是说其下标在两个方向上变化, 下标变量在数组中的位置也处于一个平面之中, 而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的, 也就是说存储器单元是按一维线性排列的。
如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。在C语言中,二维数组是按行排列的。在如上中,按行顺次存放,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为int类型,该类型占两个字节的内存空间,所以每个元素均占有两个 字节(数组中每一格为一字节)。
二维数组类型说明的一般形式是:
类型说明符数组名[常量表达式1][常量表达式2]…;
其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如:
int a[3][4]; 说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:
a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]
我们先来定义一个二维数组:
int arr[3] [4];//这表示定义了一个3行4列的二维数组,并且行优先
有以下几种表示二维数组元素的方法:
int brr [3] [4] ={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int crr [3] [4] = {1,2,3,4,5,6,7,8,9,10,11,12};
Int err [3][4] = {1,2,3,4,5};
当表示某一特定元素时,例如2行1列的元素1时,可用以下两种方式来表示:
frr [2][1]=1;
int hrr[3][4]={0,0,0,0,0,0,0,0,0,1};
int grr[][4]={1,2,3,4,5,6,7,8,9,10};//二维数组中行可以省略,至少写出列,编译器可以推断出来行
//输出crr的内容
for(int i=0;i<3;i++)//遍历行
{
for(int j=0;j<4;j++)//遍历列
{
printf(“%-3d”,crr[i][j]);//-3表示左对齐
}
printf(“\n”);
}
以上就是动力节点在线为大家带来的二维数组的相关知识,我们先融会贯通之后再去观看视频教程辅导学习吧。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54