尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

GESP4级C++考试语法知识(二、指针与数组(1、数组与数组名)

GESP4级C++考试语法知识(二、指针与数组(1、数组与数组名)
📅 发布时间:2026/6/29 13:01:55

第一课:神奇的小火车——数组为什么能够找到每一节车厢?


🎯 本章学习目标

学完这一章,同学们能够:

✅ 理解数组为什么连续存放

✅ 理解数组名代表什么

✅ 理解为什么知道第一节车厢,就能找到整列火车

✅ 为后面学习指针访问数组做好准备

注意:这一课几乎不讲指针运算,而是先复习"连续内存"的思想。


第一章 故事开始——数据王国来了小火车

1、今天,老师没有带大家去邮局。

也没有去藏宝洞。

今天,我们来到了一座新的地方——

🚂数据火车站!

这里停着许许多多的小火车。

每一列火车,都装着很多很多宝物。


2、国王说:

今天,我们要学习新的居民——数组(Array)。

国王说:

大家先把"数组"这两个字忘掉。

今天,我们不叫它数组。

我们叫它——小火车!


第二章 一节车厢——普通变量

1、以前,我们学过:

int age = 10;

(1)汉克老师给大家看:

这是什么?


(2)同学们回答:

一个变量。


(3)没错!

我们把它画成一节车厢。

┌──────────┐ │ 10 │ └──────────┘

(4)只有一节。

里面装着:

10

(5)如果再来一个变量:

int score = 95;

那就是另一节车厢。

┌──────────┐ │ 95 │ └──────────┘

(6)汉克老师问:

这两节车厢一定挨着吗?


(7)同学们回答:

不一定!


(8)实际情况,它们可能距离很远。

例如:

1000号房 ↓ age ...... ...... 5000号房 ↓ score

两个变量之间,

可能隔着很多很多房间。

所以:

普通变量,是不保证连续的。


第三章 五节车厢——数组来了

1、这时候。

火车站开来一辆真正的小火车!

int train[5] = {10,20,30,40,50};

2、汉克老师说:

(1)今天先不看代码,先看火车。

🚂═══════════════════════════ ┌────┬────┬────┬────┬────┐ │10 │20 │30 │40 │50 │ └────┴────┴────┴────┴────┘

(2)汉克老师问:

这列火车有几节车厢?


(3)同学们:

五节!


(4)每节车厢里面装着一个数字:

第一节:

10

第二节:

20

第三节:

30

第四节:

40

第五节:

50

第四章 火车为什么叫数组?

汉克老师说:

为什么它叫数组?

因为:

火车里面不是一个数字。

而是:

很多数字。

并且:

整整齐齐排成一排。

就像:

🚂🚃🚃🚃🚃

所以:

我们把它叫做:

数组。


第五章 每节车厢都有门牌号

1、以前。

汉克老师告诉大家。

每个变量都有地址。


2、数组火车也是一样。

假设:

(1)第一节车厢:

地址:

1000

(2)第二节:

1004

(3)第三节:

1008

(4)第四节:

1012

(5)第五节:

1016

3、于是:

整列火车可以画成:

地址: 1000 1004 1008 1012 1016 ┌────┬────┬────┬────┬────┐ │10 │20 │30 │40 │50 │ └────┴────┴────┴────┴────┘

老师突然停下来。

问大家:

大家有没有发现一个秘密?


第六章 地址为什么这么整齐?

1、看看:

1000 ↓ 1004 ↓ 1008 ↓ 1012 ↓ 1016

是不是每次:

都增加:

4

2、为什么?

因为:

int

通常占:

4个字节(Byte)。


3、也就是说。

每一个整数。

都会占四个小房间。


4、所以:

第一节:

占:

1000 1001 1002 1003

第二节。

只能从:

1004

开始。


于是:

第三节:

就是:

1008

5、这里发现:

数组里的元素,一个挨着一个连续存放。

这是很重要的。


第七章 数组为什么一定连续?

1、我们举一个生活中的例子。

(1)在电影院。

你买了:

5张连号电影票。


(2)工作人员会给你:

1号 2号 3号 4号 5号

(3)不会:

1号 18号 36号 72号

(4)因为:

大家一起坐。

必须连续。


2、数组也是一样。

它申请的是:

一大片连续空间。

所以:

所有元素。

必须排成一排。


第八章 数组名字是谁?

1、汉克老师写下:

train

2、汉克老师问:

它是谁?


3、很多同学说:

它是数组。

老师说:

没错。


4、但是。

今天我们换一个角度。

我们看看:

它到底站在哪里。


5、假设:

int train[5]={10,20,30,40,50};

内存:

1000 1004 1008 1012 1016 ┌────┬────┬────┬────┬────┐ │10 │20 │30 │40 │50 │ └────┴────┴────┴────┴────┘

6、汉克老师问:

如果邮递员想找到整列火车。

最少需要知道什么?

是需要:

全部所有地址吗?

1000 1004 1008 1012 1016

7、不用!

只要知道:

第一节车厢在哪里。

后面:

全部都能找到。


8、所以:

数组名字:

train

就代表:

第一节车厢的位置。

也就是:

1000

第九章 第一个实验

1、来看程序。

#include <iostream> using namespace std; int main() { int train[5]={10,20,30,40,50}; cout<<train<<endl; cout<<&train[0]<<endl; return 0; }

2、运行后。

可能看到:

0x61FF00 0x61FF00

咦?

为什么一样?


3、因为:

train

表示:

第一节车厢地址。

而:

&train[0]

也表示:

第一节车厢地址。

当然一样!


第十章 千万不要记错

1、汉克老师告诉大家。

有的人都会说:

数组就是指针。

这是不准确的!


2、正确的说法应该是:

数组名在很多情况下,会自动转换成首元素的地址。

也就是说:

对于

int train[5];

我们可以把:

train

理解成:

&train[0]

3、但是:

数组和指针并不是同一个东西。

后面的课程,我们还会证明它们有很多不同。

所以,现在先记住一句最重要的话:

数组名可以表示首元素的地址,但数组本身不是指针。


🎮 课堂小游戏

汉克老师问:

下面哪一句表示第一节车厢的地址?

①

train

②

&train[0]

③

它们都可以

答案:

✅③

因为:

train

和

&train[0]

在这里表示同一个地址。


🌟 本章总结

今天,我们没有学习新的运算符。

却建立了一个非常重要的思想:

1、普通变量

像一间房子。

位置可能到处都是。

age ...... score ...... money

不保证连续。


2、数组

像一列小火车。

🚂🚃🚃🚃🚃

所有元素:

连续存放。


3、数组名

就像火车头的位置。

知道了火车头在哪里。

整列火车都能找到。

所以:

train

通常表示:

&train[0]

也就是:

第一节车厢(首元素)的地址。


🌈 本章口诀

一辆火车排成排,

车厢之间紧挨挨。

数组元素连续放,

地址不会乱跑开。

火车名字记心怀,

首节车厢它来猜。

知道车头在哪里,

整列火车都能来!


🚀 下一章预告

下一章,我们真正让邮递员(指针)坐上小火车。

同学们会学到:

int train[5] = {10,20,30,40,50}; int *p = train;

为什么这句代码可以成立?

为什么:

*p

就是第一节车厢?

为什么:

p + 1

就能走到第二节车厢?

我们会继续用"小火车"的故事,把一维数组与指针的关系讲清楚。


相关新闻

  • 夸克网盘自动转存:告别手动操作,打造智能追剧与资源管理新体验
  • 3步找回丢失的微信聊天记录:WechatDecrypt解密工具详解
  • LabVIEW与单片机通信:如何精准提取与重组带帧结构的字节流

最新新闻

  • 如何用GlosSI轻松实现系统级Steam控制器全局支持:完整指南
  • 从SCI到Nature:一文读懂顶级学术索引与期刊的定位与选择
  • Simulink代码生成:从配置项解析到脚本自动化实战
  • 高速电流反馈放大器PCB设计实战:从THS3112评估板到自主设计
  • Display Driver Uninstaller终极指南:专业显卡驱动清理解决方案
  • Tinke:终极NDS游戏文件编辑器完全指南与实战教程

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号