9.C++数组
9.1 变量与数组
前面所学的C++变量只能用来存放一个数据值,而我们遇到的问题往往涉及多个数据量,比如学生的期末考试成绩包含了多个科目,全班同学的花名册,手机最近的通话记录可能有十多条...。如果只能用变量来存储数据,那就需要给每一个数据声明一个变量,如果数据量很大这个工作会变得既无聊又繁多。
还好C++提供了一种不同于变量的数据存储容器:数组。
数组的功能类似于变量,都是存放数据。但是数组强大的地方在于可以连续存储一组数据,至于能放入数据的数量嘛,是可以商量的!
9.2 数组声明
声明一个变量相信大家已经很熟悉,数组的声明很有特点,下面来举些例子:
声明一个数组只是比声明一个变量多了一步:加[ ]符号。我们可以在[ ]中间写一个数字,这个数字代表数组中可以存放的数据个数,也被称为数组的长度。test_result_English是一个变量名字,而test_result_all与prices分别是一个数组的名字。数组也拥有一个类型,比如上面test_result_all数组的类型是int,prices数组的类型是float。只要规定了数组的类型,就意味着只有同一种类型的数据值才能放入数组。
9.3 数据保存
数组最大的使命就是保存数据,如何让数组实现存在的意义呢?
你可以像下图一样把数据存放进数组容器中。
通常我们会在声明一个数组的同时,把数据保存进数组,就像变量一样。值得提醒一下的是在往数组中放数据时一定不能超出数组的长度,可以少放但是不能多放。
9.4 数据输出
数组中的数据也叫数组元素。数组的数据是的有序,数据之间有前后顺序。数组中的每个数据都有一个位置坐标,称为数组数据下标。下标就像序号一样,任何一个数组元素的下标都是以0开头依次为0,1,2...。
9.5 数据查询
如果一个数组保存了一年中每一个月份的天数,那我如何查询这个数组拿到某一个月份的数据呢?
如上图中,month_days是一个int类型的数组,保存了12个int类型的数据值。如果想得到1月的天数只要通过month_days[0]这个写法就可以得到。这里为什么[ ]中放入的是0呢?0是数组第一个元素的下标,而1是数组第二个元素的下标,4是数组第五个元素的下标。
9.6 数据修改
如果想在数组中保存一个闰年的2月份天数,那就需要修改数组中2月的数据。
可以这样完成:
将新数据值通过=赋值给数组元素month_days[1] 。
month_days[下标]不仅可以访问到某个下标的数组元素,还能直接通过=修改数据值。
9.7 数据拷贝
将一个数组中的全部数据拷贝到另一个数组中听起来这个想法很不错,能给我们节省很多处理数据的时间。假如要把上面的month_days数组的数据复制一份并保存到一个新数组,可以这样做:
我们可以借用前面学习过的for循环轻松完成数据的拷贝,for循环中控制执行次数的数值==数组的元素个数或数组长度。for循环体中=左边是新数组的元素,=右边是要拷贝的数组元素。
通过这个例子我们会发现循环与数组是一对好兄弟,循环语句能非常便捷的把一个数组中所有的数据访问一遍,像输出数组数据啦什么的。