news 2026/6/15 2:03:18

C++ 入门学习经验 07——数组上:数组的简单理解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++ 入门学习经验 07——数组上:数组的简单理解

大家好啊!这里是阳阳的博客,一个正在努力学习技术的大学生。

指针相关内容我们先暂时告一段落,从这篇开始,我们进入一个新的基础知识点:数组

所以今天这篇,主要聊几个简单问题:

  • 为什么需要数组?

  • 数组适合解决什么问题?

  • 刚开始学数组时,可以怎么理解?

好了,废话不多说,咱们直接开始。


一、先从存成绩这个问题开始

假设我们要保存 5 个同学的成绩。

如果没有数组,可能会这样写:

int score1 = 90; int score2 = 85; int score3 = 78; int score4 = 92; int score5 = 88;

5 个成绩这样写还可以接受。

但如果是 50 个成绩、100 个成绩呢?

难道要写:

int score1; int score2; int score3; // ... int score100;

这样代码会非常累,也很难管理。

比如我们要计算平均分,就得一个一个变量去加。数据一多,代码马上变得又长又乱。

这时候数组就派上用场了。

数组可以把一批同类型的数据放在一起管理,比如:

int scores[5] = {90, 85, 78, 92, 88};

这一行代码的意思是:定义一个叫scores的数组,里面可以存 5 个int类型的数据。

原来 5 个分散的变量,现在被统一放进了一个整体里。

我觉得可以把数组理解成一个柜子,柜子里有很多小格子,每个格子都能放一个数据。


二、数组像一排编号的小房间

来看这个数组:

int scores[5] = {90, 85, 78, 92, 88};

可以画成这样:

下标: 0 1 2 3 4 内容: 90 85 78 92 88

这里有一个特别重要的点:数组下标从 0 开始。

也就是说:

scores[0] 表示第 1 个成绩,也就是 90 scores[1] 表示第 2 个成绩,也就是 85 scores[2] 表示第 3 个成绩,也就是 78 scores[3] 表示第 4 个成绩,也就是 92 scores[4] 表示第 5 个成绩,也就是 88

很多同学刚开始会不习惯,因为我们平时生活里习惯从 1 开始数,比如第 1 个、第 2 个、第 3 个。

但数组这里要先记住一个规则:

如果数组长度是 n,那么合法下标是 0 到 n - 1。

比如:

int a[5];

这个数组有 5 个位置,下标是:

0, 1, 2, 3, 4

没有合法的a[5]这个位置。

这个问题后面非常容易出错,后面我们会专门聊数组下标和越界。


三、数组和普通变量有什么区别?

普通变量像一个单独的小盒子。

比如:

int age = 18;

它只能存一个整数。

如果要存多个年龄,就要写很多变量:

int age1 = 18; int age2 = 19; int age3 = 20;

这些变量看起来名字相似,但它们还是一个个分开的变量。

数组更像一个统一编号的柜子:

int ages[3] = {18, 19, 20};

我们可以通过下标访问里面的数据:

cout << ages[0] << endl; cout << ages[1] << endl; cout << ages[2] << endl;

数组真正方便的地方,在于它可以配合循环使用。

比如输出 3 个年龄,可以写成:

for (int i = 0; i < 3; i++) { cout << ages[i] << endl; }

i = 0时,访问ages[0]

i = 1时,访问ages[1]

i = 2时,访问ages[2]

这样循环每走一遍,就处理数组里的一个元素。

所以数组和循环经常一起出现。数组负责把数据排好队,循环负责一个一个去处理。


四、什么时候适合用数组?

刚开始学数组时,我建议大家先记住一句话:

当你发现自己要定义很多个同类型变量时,就可以考虑数组。

比如这些情况就很适合:

  • 存 5 个同学的成绩

  • 存 10 个整数

  • 存一周 7 天的温度

  • 存一次考试每道题的得分

这些数据有共同点:类型一样,数量比较多。

比如一周 7 天的温度:

double temp[7] = {23.5, 24.0, 22.8, 25.1, 26.3, 24.9, 23.7};

这里每个数据都是double类型,所以可以放进同一个数组里。

数组通常存放同一种类型的数据。

int a[5]; // 存整数 double b[5]; // 存小数 char c[5]; // 存字符

所以数组的特点可以先记成三个词:

同类型、多个数据、统一管理。


五、数组的基本写法

刚开始不用背太多复杂写法,先掌握这几种就够了。

定义一个数组:

int a[5];

定义时直接赋值:

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

访问数组元素:

cout << a[0] << endl; cout << a[3] << endl;

修改数组元素:

a[2] = 100;

如果原来数组是:

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

执行完:

a[2] = 100;

数组内容就变成:

1, 2, 100, 4, 5

这里要注意,a[2]是第三个位置。

数组里最容易写错的地方,就是下标和实际位置之间差了 1。


六、用一个小例子感受数组

下面这个程序输入 5 个整数,再把它们输出:

#include <iostream> using namespace std; int main() { int nums[5]; cout << "请输入 5 个整数:" << endl; for (int i = 0; i < 5; i++) { cin >> nums[i]; } cout << "你输入的数字是:" << endl; for (int i = 0; i < 5; i++) { cout << nums[i] << " "; } return 0; }

第一个循环负责输入。

i = 0时,数据放到nums[0]

i = 1时,数据放到nums[1]

一直到i = 4,数据放到nums[4]

第二个循环负责输出,也是从nums[0]一直输出到nums[4]

这里大家可以感受一下,数组和循环配合起来以后,处理一批数据会方便很多。


七、这一篇先记住这些

今天这篇是数组系列的开头,大家先不用急着做很难的题。

先记住这几个点:

  1. 数组用来存放一批同类型的数据。

  2. 数组可以让多个变量统一管理。

  3. 数组下标从 0 开始。

  4. 数组长度是 n,合法下标就是 0 到 n - 1。

  5. 数组经常和循环一起使用。

对于刚开始学 C++ 的同学来说,数组是一个很重要的基础。前面我们更多是在处理单个变量,到了数组这里,就开始处理一批数据了。

不用一开始就把所有细节都理解得特别透。先知道数组解决什么问题,再慢慢熟悉它的写法、下标和循环配合,后面会顺很多。

希望这篇文章能帮你对数组有一个轻松一点的第一印象。

那这篇就先到这里,下一篇我们继续聊数组里最容易让同学写错的地方:数组下标、越界,以及为什么数组长度是 5 却不能访问a[5]

如果这篇文章对你有帮助,麻烦点赞、关注和收藏吧,谢谢!😄

有什么问题或者想法,欢迎在评论区留言,我们一起交流!

我们下篇见~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 1:59:50

除了干等,GitLab报‘响应超时’时你还能做的3件事(附排查命令)

GitLab响应超时&#xff1f;三步精准定位问题根源的工程师思维遇到GitLab页面弹出"响应超时"错误时&#xff0c;多数人的第一反应是刷新页面或等待系统恢复。但作为专业工程师&#xff0c;我们需要建立一套系统化的故障排查思维——就像医生不会仅凭症状开药&#xf…

作者头像 李华
网站建设 2026/6/15 1:57:01

多模态模型入门:GPT-4V / Claude Vision 到底能做什么

我一个朋友上周在群里发了一张截图——产线报错日志&#xff0c;问"有没有人见过这个错&#xff1f;" 我正好刚接上 Vision API&#xff0c;顺手把截图丢进去&#xff0c;30 秒后 AI 给出了错误原因、涉及的文件名、甚至定位到了第几行。群里安静了 5 秒然后炸了&…

作者头像 李华
网站建设 2026/6/15 1:57:00

用 AI 自动生成文章封面:我的真实工作流

每次写完文章&#xff0c;最痛苦的不是写——是做封面。 找图、裁剪、调色、加文字、导出——一套流程至少 30 分钟。设计师报价一张封面 200 块。我不是出不起这个钱&#xff0c;是我一周一篇&#xff0c;一个月 800 块&#xff0c;一年小一万。作为一个还在冷启动期的副业号&…

作者头像 李华
网站建设 2026/6/15 1:54:55

NSK紧凑型FA系列滚珠丝杠技术详解

型号 PSS2005N1D0673 同样属于 the sources 中 NSK 专为主打微型、高速、静音与紧凑&#xff08;小型化&#xff09;**紧凑型 FA 系列&#xff08;PSS 型&#xff0c;高精度 C5 级&#xff09;滚珠丝杠&#xff0c;采用高响应的端部导流循环方式**。 与您上一条查询的同轴径、同…

作者头像 李华