什么是C语言二维数组

发布时间:2021-10-14 16:18:18 作者:柒染
来源:亿速云 阅读:138

什么是C语言二维数组,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

  数学中的行列矩阵,通常使用二维数组来描述,即用二维数组的第一维表示行,第二维表示列;生活中凡是能抽象为对象及对象的若干同类型属性的问题,一般用二维数组来描述。

  例如,若表示一个班级学生的语文、数学、外语、C语言等4门课的成绩数据。该问题可把每个学生看成一个对象,用二维数组的第一维来表示,如果有50个学生,则可设定二维数组第一维的大小为50;成绩可看成每个对象的属性,且均可使用整型表示,可用二维数组的第二维来表示,每个对象(学生)含4个属性(4门课程),故第二维大小可设为4。

  再比如,某公司若统计某产品的某个月份的销量数据,该问题可以把一周当成一个对象,一个月含4周,故4个对象,二维数组第一维可设为4;日销售量可看成每个对象的属性,可用二维数组的第二维表示,对象(每周)含有7个属性(7天的日销售量),故二维数组的第二维可设为7。

二维数组的定义

  同一维数组一样,既支持C89标准的二维静态数组,又支持C99标准的二维动态数组或变长数组。某些C编译器还没更新到支持C99标准的语法,故可能在一些编译器中变长数组会报错。如无特殊说明,教程中所指二维数组,均默认为静态数组。

  静态二维数组定义的一般格式为:

  类型数组名[第一维大小][第二维大小];

  其中,第一、二维的大小一般均为常量表达式。

  例如:

  inta[4][5];

  定义了一个4行5列的int型二维数组a。

  floatsc[3][4];

  定义了一个3行4列的float型二维数组sc。

  如下二维数组的定义形式均是错误的。

  inta[][3];//错误。编译器无法确定所需空间

  inta[2][];//错误。缺少列下标,编译器无法确定所需空间

  动态数组例子如下(仅做了解)。

  intn=2;

  inta[n][3];//动态数组,正确的C99语法。但在某些编译器中可能报错

  inta[2][n];//动态数组,正确的C99语法

  定义时未初始化的数组,其数据元素的值一般为无意义的随机值,如:

  inta[2][3];//该数组的6个元素均为随机值

  可以把二维数组看成一个特殊的一维数组,它的每个元素又是一个一维数组。例如,定义一个表示3个学生4门课程成绩的二维数组:

  intsc[3][4];

  定义了一个3行4列的二维数组sc,该二维数组可表示3个对象(学生),从这个角度看,该二维数组可以看成含3个对象(学生)的一维数组,3个对象(元素)分别为:sc[0]、sc[1]、sc[2],其中sc为该一维数组名。

  每个对象(元素)sc[i]又是一个包含4个属性(4门成绩)的一维数组,4个属性分别为:sc[i][0](语文)、sc[i][1](数学)、sc[i][2](外语)、sc[i][3](C语言)。每一行表示一个学生,每一列表示一门课程,形成如下所示的行列矩阵形式。

看完上述内容,你们掌握什么是C语言二维数组的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. C语言之二维数组
  2. c语言中二维数组如何使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言 二维数组

上一篇:Python中下划线的含义都有什么

下一篇:Java编程语言有哪些优点

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》