一文吃透C++数组:概念与操作大揭秘

目录

一、C++ 数组初印象

二、C++ 数组概念剖析

2.1 数组定义与本质

2.2 数组声明与初始化方式

2.2.1 声明

2.2.2 初始化

2.3 数组元素访问

三、C++ 数组操作全解析

3.1 遍历数组

3.1.1 for 循环遍历

3.1.2 范围 for 循环遍历

3.2 修改数组元素

3.3 获取数组大小

3.4 多维数组操作

3.4.1 二维数组

3.4.2. 多维数组拓展

3.5 数组作为函数参数

3.5.1 传数组名

3.5.2 函数原型声明

四、C++ 数组使用注意事项

4.1 数组越界问题

4.2 数组与指针的关系

五、总结与展望


一、C++ 数组初印象

        在 C++ 编程的世界里,数组是一种极为基础且重要的数据结构 ,就像是程序世界里的有序集装箱,用来整齐地存放数据。无论是进行数据处理、算法实现,还是开发各种应用程序,数组都扮演着关键角色。比如在统计学生成绩时,可以用数组存储每个学生的分数;在实现排序算法时,待排序的数据也常常存储在数组中。毫不夸张地说,掌握数组的使用是踏入 C++ 编程大门的必备技能。接下来,让我们深入了解 C++ 数组的概念。

二、C++ 数组概念剖析

2.1 数组定义与本质

        在 C++ 里,数组是相同类型数据的集合,这些数据在内存中连续存储 。比如我们要存储一个班级学生的数学成绩,就可以定义一个整型数组,因为每个学生的成绩都是整数类型。

下面来看一段简单的代码示例:

int scores[5];

        这段代码定义了一个名为scores的整型数组,它可以容纳 5 个整数,这 5 个整数在内存中是一个挨着一个排列的,就像一排紧密相连的小房间,每个小房间都存放着一个整数数据。

2.2 数组声明与初始化方式

2.2.1 声明

        数组的声明需要指定元素的类型和数组的大小。比如:

// 声明一个包含10个元素的整型数组

int numbers[10];

// 声明一个包含5个元素的浮点型数组

float prices[5];

// 声明一个包含8个字符的字符型数组

char letters[8];

        这里,numbers数组可以存放 10 个整数,prices数组可以存放 5 个浮点数,letters数组可以存放 8 个字符。需要注意的是,数组大小必须是一个常量表达式,即在编译阶段就能确定其值。

2.2.2 初始化
  • 完全初始化:在定义数组时,给数组的每个元素都赋初值。例如:
int ages[3] = {18, 20, 22};

        这个ages数组的三个元素分别被初始化为 18、20 和 22 ,就像给三个房间分别安排好了对应的客人。

  • 部分初始化:只初始化数组的部分元素,未初始化的元素会根据数组类型自动赋初值,对于整型数组,未初始化的元素默认被初始化为 0。比如:
int scores[5] = {90, 85};

        这里scores数组的前两个元素被初始化为 90 和 85,后面三个元素会自动初始化为 0。就好像只给前两个房间安排了客人,后面三个房间默认住的是 “0 号客人”。

  • 不指定大小的初始化:在初始化时不指定数组大小,编译器会根据初始化列表中的元素个数自动确定数组大小。例如:
int values[] = {1, 3, 5, 7, 9};

        此时,编译器会自动识别values数组的大小为 5,因为初始化列表中有 5 个元素 ,就像是根据实际入住的客人数量来确定房间数量。

2.3 数组元素访问

数组通过下标来访问元素,下标从 0 开始。比如对于前面定义的ages数组:

 

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

int firstAge = ages[0]; // 访问第一个元素,值为18

int secondAge = ages[1]; // 访问第二个元素,值为20

这里ages[0]表示访问ages数组的第一个元素,ages[1]表示访问第二个元素。需要特别注意的是,访问数组元素时,下标不能越界。例如,对于只有 3 个元素的ages数组,如果尝试访问ages[3],就会导致越界访问,这是非常危险的行为,可能会引发程序崩溃或产生未定义的行为。就好比去一个只有三个房间的旅馆,却要找第四个房间,肯定是找不到的,还可能会引发一系列问题。

三、C++ 数组操作全解析

3.1 遍历数组

3.1.1 for 循环遍历

        遍历数组最常见的方式之一就是使用 for 循环。通过 for 循环,我们可以依次访问数组中的每一个元素。例如,对于一个存储整数的数组,我们可以这样遍历并输出每个元素:

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

for (int i = 0; i < 5; i++) {

std::cout << numbers[i] << " ";

}

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨淅淅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值