什么是C语言二维数组-创新互联

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

目前创新互联公司已为近1000家的企业提供了网站建设、域名、网站空间网站运营、企业网站设计、王益网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

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

例如,若表示一个班级学生的语文、数学、外语、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语言二维数组的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站栏目:什么是C语言二维数组-创新互联
网页地址:http://myzitong.com/article/csopjj.html