修改密码

【2024课程】零基础学会C++编程课程

成品课程

陈远龙老师主讲 & 答疑

课程题单 - T1000

未购买 · 可先试学25节课

课程目录展开/折叠

第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未能获得满意解答的,可以联系陈远龙老师答疑

目录