课程目录展开/折叠
- 课程直播回放
- 第1课 C++编程快速入门试学
- 第2课 C++程序设计基础知识试学
- 第3课 基本输入输出和数据类型试学
- 第4课 基本输入输出和数据类型试学
- 第5课 基本输入输出和数据类型试学
- 第6课 数据类型和运算符试学
- 第7课 数据类型和运算符试学
- 第8课 C++中的运算符试学
- 第9课 C++中的运算符试学
- 第10课 C++中的运算符试学
- 第11课 C++中的运算符
- 第12课 条件判断和选择语句
- 第13课 条件判断和选择语句
- 第14课 条件判断和选择语句(刷题课)
- 第15课 循环
- 第16课 循环
- 第17课 循环
- 第18课 循环(刷题课)
- 第19课 循环(刷题课)
- 第20课 循环(刷题课)
- 第21课 循环(刷题课)
- 第22课 循环(刷题课)
- 第23课 循环嵌套
- 第24课 循环嵌套(刷题课)
- 第25课 数组试学
- 第26课 数组试学
- 第27课 数组(刷题课)试学
- 第28课 数组(刷题课)试学
- 第29课 数组(刷题课)试学
- 第30课 数组试学
- 第31课 二维数组试学
- 第32课 二维数组试学
- 第33课 数组(刷题课)试学
- 第34课 数组(刷题课)试学
- 第35课 字符串
- 第36课 字符串
- 第37课 字符串
- 第38课 字符串
- 第39课 字符串
- 第40课 字符串
- 第41课 字符串
- 第42课 字符串
- 第43课 字符串
- 第44课 指针
- 第45课 指针
- 第46课 指针
- 第47课 指针
- 第48课 指针
- 第49课 指针
- 第50课 指针
- 第51课 指针
- 第52课 指针
- 第53课 指针
- 第54课 函数
- 第55课 函数
- 第56课 函数
- 第57课 函数
- 第58课 函数
- 第59课 递归函数
- 第60课 递归函数
- 第61课 递归函数
- 第62课 递归函数
- 第63课 结构体和共用体
- 第64课 结构体和共用体
- 第65课 结构体和共用体
- 第66课 结构体和共用体
- 第67课 结构体和共用体
- 第68课 文件和文件读写
- 第69课 文件和文件读写
- 第70课 面向对象和类
- 第71课 面向对象和类试学
- 第72课 面向对象和类试学
- 第73课 STL中常用算法函数和类试学
- 第74课 整数编码和位运算试学
- 第75课 C++课程总结以及后续学习规划建议试学
第25课 数组
播放快捷键
播放/暂停:空格(或鼠标单击) 全屏:F(或鼠标双击) 退出全屏:Esc
快进10 / 30 / 60秒:方向键→ / Ctrl + 方向键→ / Shift + 方向键→
快退10 / 30 / 60秒:方向键← / Ctrl + 方向键← / Shift + 方向键←
本节课讲解配套PPT&板书:


















本节课讲解到的源代码
源代码下载:第25课 数组-源代码下载
1. 数组的基本使用
#include <bits/stdc++.h>
using namespace std;
int main()
{
/*
/ *
int a;
a = 100;
cout << a << endl;
* /
int a[100]; // 定义一个数组
/ *
cout << a[0] << endl; // 索引语法,访问单个元素
a[0] = 100;
cout << a[0];
// a[1];a[2];a[3];a[100];
* /
// a[0] a[1] a[2] a[3] a[99]
for (int i = 0; i < 100; i ++)
{
// cout << i << ' ';
cout << a[i] << ' ';
}
cout << endl;
for (int i = 0; i < 100; i ++)
{
a[i] = i;
}
for (int i = 0; i < 100; i ++)
{
cout << a[i] << ' ';
}
*/
/*
// int a = 901;
// 数组初始化语法
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// int a[10];
for (int i = 0; i < 10; i ++)
{
cout << a[i] << ' ';
}
*/
/*
int a[10] = {1, 2, 3}; // 部分初始化语法,后续全部初始化为0
for (int i = 0; i < 10; i ++)
{
cout << a[i] << ' ';
}
*/
/*
int a[10];
a[0] = 1;
a[1] = 2;
a[2] = 3;
for (int i = 0; i < 10; i ++)
{
cout << a[i] << ' ';
}
*/
// int a[100] = {0}; // 将数组中所有元素置为0
/*
int a[100];
for (int i = 0; i < 100; i ++)
{
// a[i] = 0;
a[i] = 200;
}
*/
/*
int a[1000];
memset(a, 0x00, sizeof(a));
*/
/*
int a[10];
// a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 错误的写法
a[0] = 1;
a[1] = 2;
*/
// int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; // 报错
return 0;
}
2. 数组的基本使用-2
#include <bits/stdc++.h>
using namespace std;
/*
void f(int a[])
{
cout << sizeof(a) << endl;
}
*/
int main()
{
/*
// 数组的大小
int a[10]; // 4 * 10
cout << 10 * sizeof (int) << endl;
cout << sizeof (a) << endl;
*/
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 数组占用的总空间 = 单个元素的空间 * 数组的个数
// sizeof(a) = sizeof(int) * 数组的个数
// 数组的个数 = sizeof(a) / sizeof(int)
// cout << sizeof(a) / sizeof(int) << endl;
for (int i = 0; i < sizeof(a) / sizeof(int); i ++)
{
cout << a[i] << ' ';
}
cout << endl;
// f(a);
int b[10] = {1, 2, 3, 4};
int c[] = {1, 2, 3, 4};
return 0;
}
3. 数组的不同定义
#include <bits/stdc++.h>
using namespace std;
int b[10]; // 全局数组
int g;
int main()
{
// int a[10]; // 局部变量
int a[10] = {0};
char ch;
for (int i = 0; i < sizeof(b) / sizeof(int); i ++)
{
cout << b[i] << ' ';
}
cout << endl;
for (int i = 0; i < 10; i ++)
{
cout << a[i] << ' ';
}
return 0;
}
4. 可变长度数组
#include <bits/stdc++.h>
using namespace std;
/*
int m;
int g[m];
*/
int main()
{
/*
int a[10];
// VLA 可变长度数组语法 C99
// 不是C++中的语法标准
int n;
cin >> n;
int b[n];
for (int i = 0; i < n; i ++)
{
cout << b[i] << ' ';
}
*/
int m;
cin >> m;
// int c[m] = {1, 2, 3, 4, 5};
int c[m];
for (int i = 0; i < m; i ++)
{
c[i] = i;
}
for (int i = 0; i < m; i ++)
{
cout << c[i] << ' ';
}
return 0;
}
5. 数组的大小
#include <bits/stdc++.h>
using namespace std;
// n <= 10的6次方 1e6
int a[1000005];
// const int N = 1e6 + 5;
// int N = 1e6 + 5;
constexpr int N = 1e6 + 5;
int b[N];
// int a[1024 * 1024 * 100]; // 400MB
// 256MB 256 * 1024 * 1024B / 4
int main()
{
/*
// int a[10]; // 栈内存 1MB - 4MB
int a[1024 * 1024]; // 4 MB
cout << "Hello" << endl;
*/
/*
char a[1024 * 1024]; // 1MB
// char a[1024 * 1024 * 2]; // 1MB
cout << "Hello" << endl;
*/
/*
int m;
cin >> m;
int c[m];
cout << "hello" << endl;
*/
cout << "hello" << endl;
return 0;
}
本节课答疑
建议大家有问题先通过AI答疑(比如:DeepSeek 等),AI时代需要学会使用AI辅助学习
陈远龙老师视频讲解:如何使用DeepSeek进行答疑?
通过AI未能获得满意解答的,可以联系陈远龙老师答疑
目录