Chinaunix首页 | 论坛 | 博客
  • 博客访问: 502208
  • 博文数量: 704
  • 博客积分: 39800
  • 博客等级: 大将
  • 技术积分: 4950
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 13:32
文章分类

全部博文(704)

文章存档

2011年(1)

2008年(703)

我的朋友

分类:

2008-10-15 13:34:40

    6.4 多维数组基础

    在学校里,由于一个班的人数不多,所以按照顺序编号即可,当人数增多时,例如对于学校里的人,在编号时就要增加层次,例如XX班XX号。在部队中也是这样,XX师XX团XX营XX连XX排XX班,这里的层次就比较深了。为了管理数据的方便,一般要加深管理的层次,这就是多维数组的由来。

    多维数组,指二维以及二维以上的数组。二维数组有两个层次,三维数组有三个层次,依次类推。每个层次对应一个下标。

    在实际使用中,为了使结构清晰,一般对于复杂的数据都是用多维数组。

    关于多维数组的理解,最终的是理解数组的数组这个概念,因为数组本身就是一种复合数据类型,所以数组也可以作为数组元素存在。这样二维数组就可以理解成内部每个元素都是一维数组类型的一个一维数组。三维数组可以理解成一个一维数组,内部的每个元素都是二维数组。无论在逻辑上还是语法上都支持“数组的数组”这种理解方式。

    通常情况下,一般用二维数组的第一维代表行,第二维代表列,这种逻辑结构和现实中的结构一致。

    和一维数组类似,因为多维数组有多个下标,那么引用数组中的元素时,需要指定多个下标。

    6.5 多维数组语法

    下面以二维数组为例,来介绍多维数组的语法。

    6.5.1 多维数组声明

    多维数组的声明:数据类型[][] 数组名称;数据类型[] 数组名称[];数据类型   数组名称[][];以上三种语法在声明二维数组时的功能是等价的。同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推。

    例如:int[][] map;char c[][];和一维数组一样,数组声明以后在内存中没有分配具体的空间,也没有设定数组的长度。

    6.5.2 多维数组初始化

    和一维数组一样,多维数组的初始化也可以分为静态初始化(整体赋值)和动态初始化两种,其语法格式如下。

    6.5.2.1 静态初始化

    以二维数组的静态初始化为例,来说明多维数组静态初始化的语法格式。示例代码如下:

                   int[][] m = {
                            {1,2,3},
                            {2,3,4}
                   };

    在二维数组静态初始化时,也必须和数组的声明写在一起。数值书写时,使用两个大括号嵌套实现,在最里层的大括号内部书写数字的值。数值和数值之间使用逗号分隔,内部的大括号之间也使用逗号分隔。

    由该语法可以看出,内部的大括号其实就是一个一维数组的静态初始化,二维数组只是把多个一维数组的静态初始化组合起来。

    同理,三维数组的静态初始化语法格式如下:

                   int[][][] b = {
                            {
                                     {1,2,3},
                                     {1,2,3}
                            },
                            {
                                     {3,4,1},
                                     {2,3,4}
                            }
                   };

    说明:这里只是演示语法格式,数值本身没有意义。

[1]  

【责编:Chuan】

--------------------next---------------------

阅读(222) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~