电话:0731-83595998
导航

2011年软件水平考试程序员之程序设计知识点15

来源: 2017-10-20 13:59

 4.2 二维数组和多维数组

  1.多维数组定义

  数组也可以是多维的。现以二维数组为例介绍二维及二维以上的多维数组。二维数组的定义形式为:

  类型说明符 数组名「常量表达式」[常量表达式」;

  通常多维数组的定义形式有连续两个或两个以上"「常量表达式」"。例如:

  float a[2][3],b[3][4]; /*两个二维数组*/

  float c[2][2][3];/*一个三维数组*/

  定义数组a为2行3列,数组b为3行4列。C语言把二维数组看作是一种特殊的一维数组,即它的元素又是一个数组。例如,对于上述定义的数组a,把它看作有两个元素的一维数组:

  a[0]和 a[l]

  每个元素又是一个包含3个元素的一维数组。通常,一个n维数组可看作是一个一维数组,而它的元素是一个(n-1)维的数组。C语言对多维数组的这种观点和处理方法,使数组的初始化、引用数组的元素以及用指针表示数组带来很大的方便。

  在C语言中,二维数组的元素的存放顺序是按行存放的,即从数组的首地址开始,先顺序存放第一行的元素,再存放第二行的元素。通常,对于一个多维数组,它的元素在内存中的存放顺序有这样特点:第一维的下标变化最慢,最右边的下标变化最快。

  2.引用多维数组元素

  引用二维数组元素的表示形式为:

  数组名[下标][下标]

  通常,引用n维数组元素的表示形式为数组名之后紧接连续n个"[下标]"。

  在用下标引用数组的元素时,应该注意下标值的有效性,应在已定义的对应维大小的范围内,即大于等于0和小于对应维的元素个数。

  3.多线数组初始化

  多维数组的初始化方法也有多种,以二维数组的初始化方法为例说明其初始化方法。

  (1)按行给二维数组的全部元素赋初值。例如:

  int al[2][3]={{1,2,3 },{4,5,6 }};

  这种赋初值方法比较直观,第一个花括弧内的数据给第一行的元素赋初值,第二个花括弧内的数据给第二行的元素赋初值,依次类推,按行给数组的全部元素赋初值。

  (2)按元素的存储顺序给数组元素赋初值。例如:

  int a2[2][3]={1,2,3,4,5,6 };

  这种赋初值方法结构性差,容易遗漏。

  (3)按行给数组的部分元素赋初值。例如:

  int a3[2][3]={{1,2},{0,5}};

  其效果是使a3[0][0]=l,a3[0][1]=2,a3[1][0]=0,a3[1][l]=5,其余均为0。

  (4)按元素的存储顺序给前面部分元素赋初值。例如:

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

  其效果是使a4[0][0]=1,a4[0][l]=2,a4[0][2]=3,a4[1][0]=4,其余均为0。

  (5)按元素的存储顺序,给数组部分或全部元素赋初值,并且不指定第一维的元素个数。例如:

  int a5[][3]={l,2,3,4,5 };

  系统会根据结出的初始数据个数和其它维的元素个数确定第一维的元素个数。其效果是使:

  a5[0][0]=1,a5[0][1]=2,a5[0][2]=3,

  a5[1][0]=4,a5[l][l]=5,a5[1][2]=0。

  所以数组a5有2行。

  (6)用按行赋初值方法,对各行的部分或全部元素赋初值,并省略第一维的元素个数。例如:

  int a6[][3]={{O,2},{}};

  也能确定数组a6共有2行。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端