数组是一种非常重要的数据结构,它允许用连续的方式存储和访问一组相同类型的数据。无论是存储学生成绩、处理图像数据还是解决复杂的数学问题,数组都发挥着重要的作用。
1️⃣ 一维数组的定义与引用
✨ 倒序输出
在C++中,一维数组是一种存储相同类型数据的连续内存块。可以通过下标来访问数组中的元素,下标从0开始计数。
#include <iostream>
int main() {
int arr[] = {1, 2, 3, 4, 5};
// 倒序输出数组元素
for (int i = 4; i >= 0; i--) {
std::cout << arr[i] << " ";
}
return 0;
}
输出结果:
5 4 3 2 1
在上述案例中,定义了一个整型数组arr
,并使用for循环从后往前输出数组中的元素,实现了倒序输出。
✨ 数组定义语法格式
一维数组的定义语法格式如下:
数据类型 数组名[数组长度];
其中,数据类型表示数组中元素的类型,数组名是标识数组的名称,数组长度表示数组中元素的数量。
✨ 长度与下标的关系
在C++中,一维数组的长度是指数组中元素的数量。数组的下标从0开始,最大下标为数组长度减1。
#include <iostream>
int main() {
int arr[] = {10, 20, 30, 40, 50};
std::cout << "数组长度: " << sizeof(arr) / sizeof(arr[0]) << std::endl;
std::cout << "第一个元素: " << arr[0] << std::endl;
std::cout << "最后一个元素: " << arr[sizeof(arr) / sizeof(arr[0]) - 1] << std::endl;
return 0;
}
输出结果:
数组长度: 5
第一个元素: 10
最后一个元素: 50
在上述案例中,定义了一个整型数组arr
,通过sizeof
运算符计算数组长度,并输出数组的第一个元素和最后一个元素。
✨ 数组类型
数组可以存储各种数据类型的元素,例如整型、浮点型、字符型等。
#include <iostream>
int main() {
int intArray[5] = {1, 2, 3, 4, 5};
float floatArray[3] = {1.1, 2.2, 3.3};
char charArray[4] = {'A', 'B', 'C', 'D'};
std::cout << "整型数组第一个元素: " << intArray[0] << std::endl;
std::cout << "浮点型数组第二个元素: " << floatArray[1] << std::endl;
std::cout << "字符型数组第三个元素: " << charArray[2] << std::endl;
return 0;
}
输出结果:
整型数组第一个元素: 1
浮点型数组第二个元素: 2.2
字符型数组第三个元素: C
在上述案例中,分别定义了整型数组intArray
、浮点型数组floatArray
和字符型数组charArray
,并输出了它们的元素。
✨ 数组初始化的多个方式
在C++中,可以使用多种方式来初始化数组,包括使用大括号列表初始化、逐个赋值和部分赋值。
#include <iostream>
int main() {
int arr1[] = {1, 2, 3, 4, 5}; // 大括号列表初始化
int arr2[5];
arr2[0] = 10; // 逐个赋值
arr2[1] = 20;
arr2[2] = 30;
arr2[3] = 40;
arr2[4] = 50;
int arr3[5] = {1, 2, 3}; // 部分赋值
std::cout << "arr1的第一个元素: " << arr1[0] << std::endl;
std::cout << "arr2的最后一个元素: " << arr2[4] << std::endl;
std::cout << "arr3的第三个元素: " << arr3[2] << std::endl;
return 0;
}
输出结果:
arr1的第一个元素: 1
arr2的最后一个元素: 50
arr3的第三个元素: 3
在上述案例中,展示了使用大括号列表初始化、逐个赋值和部分赋值的方式来初始化数组。
✨ 一维数组的赋值与遍历
可以使用循环结构来对一维数组进行赋值和遍历。
#include <iostream>
int main() {
int arr[5];
int sum = 0;
// 数组赋值
for (int i = 0; i < 5; i++) {
std::cout << "请输入第" << i + 1 << "个元素: ";
std::cin >> arr[i];
}
// 数组遍历和求和
for (int i = 0; i < 5; i++) {
std::cout << "第" << i + 1 << "个元素: " << arr[i] << std::endl;
sum += arr[i];
}
std::cout << "数组元素的和为: " << sum << std::endl;
return 0;
}
在上述案例中,首先使用for循环对数组进行赋值,然后再使用for循环遍历数组并计算数组元素的和。
2️⃣ 多维数组的定义与运用
多维数组是指包含多个维度的数组,例如二维数组、三维数组等。在C++中,多维数组的定义和使用与一维数组类似。
#include <iostream>
int main() {
int matrix[3][3] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
std::cout << "二维数组的元素: " << std::endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
输出结果:
二维数组的元素:
1 2 3
4 5 6
7 8 9
在上述案例中,定义了一个二维数组matrix
,并使用嵌套的for循环遍历二维数组并输出其中的元素。
3️⃣ 数组经典应用例题训练
✨ 案例1: 数组元素求和
编写一个程序,要求用户输入一个整型数组,计算并输出数组元素的和。
#include <iostream>
int main() {
const int SIZE = 5;
int arr[SIZE];
int sum = 0;
std::cout << "请输入" << SIZE << "个整数:" << std::endl;
for (int i = 0; i < SIZE; i++) {
std::cin >> arr[i];
sum += arr[i];
}
std::cout << "数组元素的和为: " << sum << std::endl;
return 0;
}
在上述案例中,首先定义了一个大小为5的整型数组arr
,并使用for循环接收用户输入的整数,并累加求和。
✨ 案例2: 查找数组元素
编写一个程序,要求用户输入一个整型数组和一个目标值,判断目标值是否在数组中存在。
#include <iostream>
int main() {
const int SIZE = 5;
int arr[SIZE];
int target;
bool found = false;
std::cout << "请输入" << SIZE << "个整数:" << std::endl;
for (int i = 0; i < SIZE; i++) {
std::cin >> arr[i];
}
std::cout << "请输入目标值: ";
std::cin >> target;
for (int i = 0; i < SIZE; i++) {
if (arr[i] == target) {
found = true;
break;
}
}
if (found) {
std::cout << "目标值存在于数组中" << std::endl;
} else {
std::cout << "目标值不存在于数组中" << std::endl;
}
return 0;
}
在上述案例中,首先定义了一个大小为5的整型数组arr
,然后接收用户输入的整数,并使用for循环遍历数组,判断目标值是否在数组中存在。
4️⃣ 数组与循环综合复习
数组与循环是C++中非常重要的概念,
它们经常被结合使用,进行复杂的问题解决。
✨ 案例: 输出九九乘法表
#include <iostream>
int main() {
const int SIZE = 9;
for (int i = 1; i <= SIZE; i++) {
for (int j = 1; j <= i; j++) {
std::cout << j << " * " << i << " = " << i * j << "\t";
}
std::cout << std::endl;
}
return 0;
}
在上述案例中,使用嵌套的for循环来输出九九乘法表。外层循环控制乘法表的行数,内层循环控制每行的列数,输出每个乘法表达式的结果。
🎉 总结
本篇笔记介绍了C++中一维数组和多维数组的定义与使用。学习了一维数组的倒序输出、定义语法格式、长度与下标的关系、不同类型的数组以及数组的赋值和遍历。此外,还学习了多维数组的定义与运用,并通过经典应用例题和综合复习加深了对数组的理解。通过不断练习和实践,可以更好地掌握数组在C++中的应用,为解决实际问题提供更多可能性。继续加油,掌握更多C++的知识!
希望本篇笔记对你的C++学习有所帮助。如果你有任何问题或疑惑,欢迎继续探索和提问。祝你学习愉快,编程进步!
⭐️希望本篇文章对你有所帮助。
⭐️如果你有任何问题或疑惑,请随时向提问。
⭐️感谢阅读!