esp8266接收到的数据如何存放到数组中_C++入门篇(二十六),数组声明与操作

本文介绍了C++中的数组,作为存储大量数据的"大仓库",数组允许我们一次性存储多个同类型的元素。文章详细讲解了数组的声明,包括数组的大小必须在声明时指定且为常量表达式。接着,阐述了数组的操作,特别是通过下标访问数组元素,并强调下标的范围从0开始。还提到了数组的初始化,可以指定初始值,甚至让计算机自动计算数组大小。最后,讨论了初始化时初始化值的数量可以少于数组大小,但不能多。
摘要由CSDN通过智能技术生成

在之前我们介绍了像箱子一样的变量,在前面的学习中,我们也基本掌握了如何使用变量,可是,单个的变量有个严重的缺陷,就是它能存储的数据实在太少了,要么只能存一个数,要么只能存一个字符。然而有时候要处理很多数据,那些数据该怎么放呢?本篇我们来学习放数据的”大仓库”(数组),学会了数组,我们就能让计算机处理更多的数据,

在程序设计中,大多数数据都是存放在变量里的。如果我们要处理较多的数据,增加存放数据的空间,最简单的方法就是多设置一些变量,然而变量多了就难以管理了,这就好像一个班级里的学生名字有长有短,即使没有重复的名字,要在一长串名单里找到一个学生的名字也不是一件容易的事。于是,最方便的方法就是给学生编上学号了,把名单让学号排列好以后,查找起来只要找学号就可以了,因为数字的排列是从小大大的,是有顺序的,所以查找起来要比在一堆长短不一的名字中查找方便多了。

我们受到“学号”的启发,也可以给变量编一个号,把存储着相关内容的变量编在一组内,这就称为数组(Array)。

一.C++中的数组声明

数组的本质也是变量,所以在使用数组之前,必须要声明数组。声明一个数组的语法格式为:数据类型 数据名[常量表达式];

和申明变量类似,数据类型仍然是整型,字符型等……,数组的命名规则和变量的命名规则也是一样。在这里要说明两个问题;以前我们了解过在语法规则中的中括号表示可有可无的东西,但是在数组名后的中括号有着其独特的含义,不是可有可无的。数组名后的中括号是数组的一个特征,没有这个特征就不是数组了。数组中每个存放数据的变量称为数组元素,中括号里的常量表达式称为数组的大小,即是元素个数。如 int a[10];这句语句就是声明了一个可以存放10个整数数据的数组,它所能存储的数据相当于10个整数变量。

计算机必须在程序执行之前就知道数组的大小,因此中括号内只能是一个常量表达式,而不能含有变量。

通过实验,我们知道无法根据程序运行的实际情况来声明一个数组的大小。所以为了保证程序有足够的存储空间和正常运行,尽量要声明一个足够大的数组,要注意;足够大不是无穷大,比如要存放一个50人左右的班级的学生成绩,我们声明一个大小为70的数组就是足够大了。但是声明一个大小为1000的数组却是不必要的浪费。

二.数组的操作

前面说到,数组就像给变量编了号,那我们在访问数组中的某一个元素时自然要用到这个编号了。给学生编的号称为学号,给数组元素编的号称为下标(Subscript)。我们要表达数组中某一个元素的格式为: 数组名 [下标]。

在C++中,下标是从0开始,所以一个大小为n的数组,它的有效下标是0~n -1,如果下标不在这个范围之内,就会发生错误,和声明数组时不同,操作一个数组元素时,它的下标既可以是一个常量表达式,也可以是一个含有变量的表达式。

我们来写一个简单的例子(大家动手测试)

ae905e170266de540e3eca1c494cacd2.png

我们运行完程序以后,发现除了要注意下标是否有效之外,对数组的操作和变量的操作是一样的,

三.数组的初始化

我们知道,变量在声明的同时可以进行初始化,同样地,数组可以在声明的时候进行初始化,其语法格式为:数据类型 数组名[常量表达式]={初始化值1,初始化值2,初始化值n}

在初始化数组时,大括号中值的个数不能多于声明数组的大小,也不能通过添加逗号方式跳过,但是,值的个数可以少于数组声明的个数。

如图:

687c44e8ebd4ccce76767cc904e46632.png四.省略数组大小

我们已经知道如何声明和初始化一个数组。然而有的时候我们既要赋值还要数元素个数,有些麻烦,既然已经对各元素赋了初值,计算机能否自己算出有多少个元素呢?答案是肯定的,只要对各元素赋了值,计算机会自动计算出声明的数组应该有多大。例如:

int array[] ={1,2,3,4}

上面这句代码就相当于下面这句

int array[4] ={1,2,3,4}

这样的写法便于我们声明数组元素时的插入与修改,我们只需要直接在括号中对数据进行修改就可以了。不必去考虑中括号的数组大小应该怎么变化,但是,在这种情况下又怎么才能知道数组的大小呢?我将在下一篇中写个例子。

本篇完!喜欢的朋友可以收藏与转发,欢迎大家在下方评论留言,下一篇 《仓库是怎么造成的》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值