0
点赞
收藏
分享

微信扫一扫

C++强化 | 03 一维数组入门



戳一戳!和我一起走进信息学的世界

导读

一些具有相同类型、相同含义的数据,如果我们还是定义一堆变量,就很麻烦了,数组可以帮助我们解决这个问题。


数组是什么?数组如何定义?数组都有哪些操作?数组都要和什么结合使用?


让我们带着问题,通过本篇文章,一起来认识数组了解数组吧!




1 引入

班里面有50名同学,现在要求把这50个同学的年龄记录下来。怎么办呢?


int age1,age2,age3,age4,age5;


这种方式确实能够解决我们的问题。可如果我要存10000个同学,我们还要再定义一万个变量吗?


这就需要我们这学期要讲的一块内容——数组了。

2 数组基础

1 什么是数组

数组是有序的元素序列,是相同类型组成的一个变量的集合


通过上面的定义,我们知道,数组要满足如下两条:


要具有相同的类型;
要是一个有序的序列;


那如何定义和使用数组呢?让我们继续学习!

2 数组的定义

数组的定义格式如下:


数据类型 数组名[数组长度];


举个例子:


int a[10]; //定义一个int类型的数组,数组名为a,数组长度为10。


具体的对应关系如下:


C++强化 | 03 一维数组入门_数组


要注意的是:用这种方式定义的数组,长度必须是一个常量,不能是变量。


比如下面这种写法,就是错误的:


int b = 10;
int a[b];


我们可以这样写:


const int n = 10;
int a[n];


定义长度为n的数组就是计算机在内存中申请n个连续的空间,数据按照顺序排列在这个空间内




3 数组的简单赋值

我们经常需要对数组进行赋值操作,然后再对数组本身进行操作。


数组其实就是另一种“变量”,赋值方式和普通变量一致。即数组也支持:


边定义边赋值
先定义后赋值


要注意的是

因为数组是多个相同类型的数据的序列,所以一般在赋值的时候,我们也要给变量赋很多值。


示例如下:


int a[5] = {1, 2, 3, 4, 5};


总结一下:


变量值之间要用逗号隔开;
要写在大括号里面。


如果我们在赋值的过程中,并没有全部赋值,只是写了几种情况:


int a[5] = {1, 2};


这个时候,默认是给前几个值赋值,剩余的使用默认值0。如果一个都没有,只有一个大括号:


int a[5] = {};


这种情况就是给每个值赋初值为0。


3 数组索引

1 什么是数组索引

如果数组只能一次性全部访问,一次性全部操作,而不能对每一个进行单独操作的话,就没有定义数组的必要了。


数组中提供了索引的概念,帮助我们对每一个数组元素进行操作。


索引是数组中某个元素在数组中的位置。相当于书籍的目录,我们可以通过索引直接访问到某个数据,对其进行相关操作。


需要注意的是:数组索引,从0开始


数组元素的索引为0,则说明该元素是数组中的第一个元素。数组元素的索引为k,则说明该元素是数组中的第k+1个元素。

2 使用索引访问值

我们可以通过数组索引访问数组的值


假如我们有一个数组:


int a[5] = {1, 2, 3, 4, 5};


则访问该数组的所有值的方式如下:


cout<<a[0]<<endl; // 访问第1个数据
cout<<a[1]<<endl; // 访问第2个数据
cout<<a[2]<<endl; // 访问第3个数据
cout<<a[3]<<endl; // 访问第4个数据
cout<<a[4]<<endl; // 访问第5个数据


在具体访问值的时候,我们要注意的就是访问第i个数据,索引为i-1




3 使用索引赋值与修改值

使用索引进行赋值和修改值是一样的。


只不过,使用索引赋值,是在定义时候,数组本来没有值。


使用索引修改值是在数组本身有值的前提下。


赋值及修改值方式如下:


cin>>a[0]; // 给第1个数据赋值
cin>>a[1]; // 给第2个数据赋值
cin>>a[2]; // 给第3个数据赋值
cin>>a[3]; // 给第4个数据赋值
cin>>a[4]; // 给第5个数据赋值

a[0] = 2;
a[1] = 5;
a[2] = 2;
a[3] = 5;
a[4] = 2;


4 数组与循环

上面使用索引的简单操作,我们学会了直接简单使用索引,但是如果我们一个一个访问,还是有点麻烦。


我们可以把上面重复的操作用循环帮我们解决。具体怎么办呢?让我们一起走进这一节内容。

1 什么是遍历

在讲这一块内容之前,先给大家讲一下,什么是遍历。


遍历从字面意思理解是把所有的都经历一遍。对于数组来说,就是对于每个数组元素,都进行一次操作。


根据上面的理解,我们可以知道:遍历是一个整体内的所有元素按照某个顺序依次进行访问或者操作


也就是说,遍历是针对所有的元素,而且,操作不固定,基本的遍历方式有:


遍历访问
遍历赋值


既然要对每一个都做操作,如果我们一个一个写,确实很累,而且有时候,我们不知道要写几个,这个时候,就需要循环帮助我们啦!


2数组的循环访问

之前我们讲,数组的访问方式为:


cout<<a[0]<<endl; // 访问第1个数据
cout<<a[1]<<endl; // 访问第2个数据
cout<<a[2]<<endl; // 访问第3个数据
cout<<a[3]<<endl; // 访问第4个数据
cout<<a[4]<<endl; // 访问第5个数据


每个访问都是很近似的,我们讲循环的时候说到过,我们可以把重复操作的,用循环实现,数组的访问也可以,写法如下:


int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

for(int i = 0;i<10;i++){
cout<<a[i]<<endl; // 访问第i个数据
}


3 数组的循环赋值与修改值

和数组的循环访问一样,数组的循环赋值和修改值也可以使用循环实现:


int a[10];
for(int i = 0;i<10;i++){
cin>>a[i];
}


5 习题


定义一个名字为score的整型数组,用于存放5位同学的信息学测试成绩。五位同学的成绩如表格。


学号

1

2

3

4

5

成绩

90

82

85

78

95


尝试通过键盘输入学生的成绩,之后在屏幕上输出score数组中保存的成绩。


说在后面的话

相信大家通过这篇文章的学习,能够对数组及数组的相关用法有更加深刻的认识了。希望大家能够多多练习多多思考,掌握数组,为以后的学习打下扎实的基础。


如果想要了解更多关于信息学的知识,那就关注我吧!




AI与区块链技术

C++强化 | 03 一维数组入门_赋值_02

长按二维码关注


举报

相关推荐

0 条评论