动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

详解二维数组

05-28 16:01 814浏览
举报 T字号
  • 大字
  • 中字
  • 小字

二维数组在概念上是二维的,即是说其下标在两个方向上变化, 下标变量在数组中的位置也处于一个平面之中, 而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的, 也就是说存储器单元是按一维线性排列的。

如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。在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”);

}

以上就是动力节点在线为大家带来的二维数组的相关知识,我们先融会贯通之后再去观看视频教程辅导学习吧。

0人推荐
共同学习,写下你的评论
0条评论
杨晶珍
程序员杨晶珍

98篇文章贡献357785字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消