当前位置:首页 > 全部子站 > IT > 水平考试

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

来源:长理培训发布时间:2017-10-20 13:59:22

 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行。

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部