1 本课主要内容:
2 主要知识点:
-
数组的使用场景?
#include <string>
std::string allNames[50]; // 用来保存 50 名同学名称数组变量
-
一维数组的声明
-
一维数组的赋值、访问、遍历
// 一维数组例子
int arrayName1[6]; // 声明6个元素的int数组,未初始化值
int arrayName2[6] = { 1, 3, 5, 8, 9, 12 }; // 声明6个元素的int数组,并初始化值
float arrayName3[] = { 1.2, 3.45, 5.01, 8.76 }; // 声明float数组,数组大小则为初始化元素的个数
// 数组赋值
arrayName1[0] = 12;
arrayName1[1] = 13;
arrayName3[0] = 1.25;
// 访问数组元素
const float f1 = arrayName3[0];
const float f2 = arrayName3[1];
std::cout << "arrayName3[0] = " << f1 << std::endl;
std::cout << "arrayName3[1] = " << f2 << std::endl;
// 遍历数组,需要知道数组的大小(元素个数)
for (int i = 0; i < sizeof(arrayName2)/sizeof(int); i++) {
const int v = arrayName2[i];
std::cout << "arrayName2[" << i << "] = " << v << std::endl;
}
-
二维数组的声明
-
二维数组的赋值、访问、遍历
// 二维数组例子
float arrayName1[3][5] = {
{1.1, 1.2, 1.3, 1.4, 1.5},
{2.1, 2.2, 2.3, 2.4, 2.5},
{3.1, 3.2, 3.3, 3.4, 3.5}
};
// 数组赋值
arrayName1[0][0] = 100.1;
arrayName1[0][1] = 100.2;
arrayName1[0][2] = 100.2;
// 访问数组元素
const float f1 = arrayName1[1][0];
const float f2 = arrayName1[1][1];
const float f3 = arrayName1[1][2];
std::cout << "arrayName1[1][0] = " << f1 << std::endl;
std::cout << "arrayName1[1][1] = " << f2 << std::endl;
std::cout << "arrayName1[1][2] = " << f3 << std::endl;
// 遍历数组,需要知道数组的大小(元素个数)
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
const float v = arrayName1[i][j];
std::cout << "arrayName1[" << i << "][" << j << "] = " << v << std::endl;
}
}
-
多维数组
-
指向数组的指针
int arrayName[5] = {10, 20, 30, 40, 50};
int* arrayPointer = arrayName; // 指向数组的指针
// 数组赋值
arrayPointer[0] = 100;
// 访问数组
const int v1 = arrayPointer[1];
std::cout << "arrayPointer[1] = " << v1 << std::endl;
// 遍历数组,需要知道数组的大小(元素个数)
for (int i = 0; i < 5; i++) {
const int v = arrayPointer[i];
std::cout << "arrayPointer[" << i << "] = " << v << std::endl;
}
-
使用 new 创建动态数组
// 动态数组例子
const int size = 10; // 动态数组个数
float* arrayName = new float[size]; // 创建动态数组
// 遍历赋值并打印
for (int i = 0; i < size; i++) {
arrayName[i] = (i + 0.25);
std::cout << "arrayName[" << i << "] = " << arrayName[i] << std::endl;
}
delete[] arrayName; // 销毁动态数组
-
数组排序是从 0 开始计算
3 注意事项:
4 课后练习:
附录:在线视频课程
【C++程序员必修第一课】C++基础课程