课程目录展开/折叠
- 课程直播回放
- 第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++课程总结以及后续学习规划建议试学
第26课 数组
播放快捷键
播放/暂停:空格(或鼠标单击) 全屏:F(或鼠标双击) 退出全屏:Esc
快进10 / 30 / 60秒:方向键→ / Ctrl + 方向键→ / Shift + 方向键→
快退10 / 30 / 60秒:方向键← / Ctrl + 方向键← / Shift + 方向键←
本节课讲解配套PPT&板书:














本节课讲解到的源代码
源代码下载:第26课 数组-源代码下载
1. 遍历数组
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[10] = {1, 2, 3};
for (int i = 0; i < 10; i ++)
{
cout << a[i] << ' ';
}
cout << endl;
// 基于范围的for循环 C++11 C++2011
for (int x : a)
{
cout << x << ' ';
}
cout << endl;
cout << "-------------" << endl;
// 遍历的时候修改数组中的元素 (可行)
/*
for (int i = 0; i < 10; i ++)
{
a[i] = 2 * a[i];
cout << a[i] << ' ';
}
cout << endl;
*/
/* 这种方法不行
for (int x : a)
{
x = 2 * x;
}
for (int x : a)
{
cout << x << ' ';
}
*/
for (int &x : a)
{
x = 2 * x;
}
for (int x : a)
{
cout << x << ' ';
}
cout << endl;
for (int &x : a)
{
// x = 1;
// x = 2 * x;
cout << x << ' ';
}
cout << endl;
for (const int &x : a)
{
cout << x << ' ';
// x = 100;
}
return 0;
}
2. 引用类型
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a = 100;
cout << a << endl;
// int b = a;
a = 200;
cout << a << endl;
// 引用类型
int &a1 = a; // a1就是a的别名,小名
cout << a1 << endl; // 200
a1 = 300;
cout << a << endl; // 300
int a2 = a;
a2 = 400;
cout << a << endl; // 300
cout << a2 << endl; // 400
cout << "-------" << endl;
cout << &a << ' ' << &a1 << endl;
cout << "----" << endl;
int &aa = a;
aa = 500;
cout << a1 << endl; // 500
cout << "-----" << endl;
/* 编译出错
int &a3;
a3 = a;
*/
int &a4 = a1; // 内存模型
const int &a9 = a;
cout << a9 << endl;
// a9 = 900;
a = 900;
cout << a9 << endl;
return 0;
}
3. swap函数
#include <bits/stdc++.h>
using namespace std;
/*这个不行
void swap1(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
*/
/*
void swap2(int *pa, int *pb)
{
int temp = *pa;
*pa = *pb;
*pb = temp;
}
*/
void swap3(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 1, b = 2;
// swap1(a, b);
// cout << a << ' ' << b << endl;
// swap2(&a, &b);
// cout << a << ' ' << b << endl;
swap3(a, b);
cout << a << ' ' << b << endl;
return 0;
}
4. 数组访问越界
#include <bits/stdc++.h>
using namespace std;
int main()
{
// C 、C++天然的劣势,数组访问不做边界检查
// int b[1024 * 1024]; // 4MB
int a[10]; // 0 - 9
/*
for (int i = 0; i < 10; i ++)
{
a[i] = i;
}
*/
int cnt = 0;
for (int &x : a)
{
x = cnt ++;
}
for (int &x : a)
{
cout << x << ' ';
}
// a[0] - a[9]
cout << endl;
cout << "----------" << endl;
cout << a[10] << endl;
a[10] = 900;
cout << a[10] << endl;
// cout << a[10000] << endl;
// cout << "hello" << endl;
cout << a[-1] << endl;
return 0;
}
5. 调试内存
#include <bits/stdc++.h>
using namespace std;
int main()
{
char c[10] = {'a', 'b', 'c', 'd'};
int a[10] = {1, 2, 3, 4};
a[1] = 0x12345678;
return 0;
}
本节课课后练习题
本节课答疑
建议大家有问题先通过AI答疑(比如:DeepSeek 等),AI时代需要学会使用AI辅助学习
陈远龙老师视频讲解:如何使用DeepSeek进行答疑?
通过AI未能获得满意解答的,可以联系陈远龙老师答疑
目录