第七课 数组

前面学习的变量,如数字、字符串是最简单的数据。为了解决更多有趣的问题,我们需要批量存储数据,这就是数组。数组是存储多个相同类型数据的集合。

一、数组定义

类型 数组名[数组长度];

数组定义示例:

int scores[5];           // 定义整型数组,长度为5
int nums[5] = {1,2,3,4,5}; // 定义并初始化
int arr[] = {1,2,3};     // 自动推断长度
float prices[3] = {1.5, 2.5, 3.5}; // 浮点型数组
char name[10] = "Tom";   // 字符数组(字符串)

二、数组访问(下标从0开始)

#include <iostream>
using namespace std;

int main() {
    int nums[5] = {10, 20, 30, 40, 50};

    // 访问数组元素
    cout << nums[0] << endl;  // 输出10(第1个元素)
    cout << nums[1] << endl;  // 输出20(第2个元素)
    cout << nums[4] << endl;  // 输出50(第5个元素)

    // 修改数组元素
    nums[0] = 100;
    cout << nums[0] << endl;  // 输出100

    return 0;
}

三、遍历数组

#include <iostream>
using namespace std;

int main() {
    int arr[5] = {1, 2, 3, 4, 5};

    // for循环遍历
    for (int i = 0; i < 5; i++) {
        cout << arr[i] << " ";
    }
    // 输出:1 2 3 4 5
    cout << endl;

    // 计算数组和
    int sum = 0;
    for (int i = 0; i < 5; i++) {
        sum += arr[i];
    }
    cout << "总和:" << sum << endl;  // 输出15

    return 0;
}

四、数组初始化方式

#include <iostream>
using namespace std;

int main() {
    // 方式1:完全初始化
    int a1[3] = {1, 2, 3};

    // 方式2:部分初始化,未指定的默认为0
    int a2[5] = {1, 2};  // {1, 2, 0, 0, 0}

    // 方式3:不初始化(数组元素值是随机的)
    int a3[3];

    // 方式4:定义时全部初始化为0
    int a4[5] = {0};  // 全部为0
    int a5[5] = {};   // 全部为0(C++11)

    // 输出验证
    for (int i = 0; i < 5; i++) {
        cout << a2[i] << " ";
    }
    // 输出:1 2 0 0 0

    return 0;
}

五、二维数组

#include <iostream>
using namespace std;

int main() {
    // 定义3行4列的二维数组
    int matrix[3][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

    // 访问元素
    cout << matrix[0][0] << endl;  // 输出1(第1行第1列)
    cout << matrix[2][3] << endl;  // 输出12(第3行第4列)

    // 遍历二维数组
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            cout << matrix[i][j] << "\t";
        }
        cout << endl;
    }
    // 输出:
    // 1    2    3    4
    // 5    6    7    8
    // 9    10   11   12

    return 0;
}

六、字符数组(C风格字符串)

#include <iostream>
using namespace std;

int main() {
    // 方式1:字符数组
    char c1[] = {'H', 'e', 'l', 'l', 'o', '\0'};  // 需要手动加'\0'

    // 方式2:字符串常量
    char c2[] = "Hello";  // 自动加'\0'

    // 方式3:指定长度
    char c3[10] = "Hi";

    // 输出
    cout << c1 << endl;  // Hello
    cout << c2 << endl;  // Hello
    cout << c3 << endl;  // Hi

    // 访问单个字符
    cout << c2[0] << endl;  // H
    cout << c2[4] << endl;  // o

    return 0;
}

七、数组作为函数参数(后续学习)

#include <iostream>
using namespace std;

// 数组作为参数传递
void printArray(int arr[], int n) {
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

int main() {
    int nums[5] = {1, 2, 3, 4, 5};
    printArray(nums, 5);  // 输出:1 2 3 4 5
    return 0;
}

注意:C++数组长度固定,定义后不能改变。如果需要动态大小的数组,推荐vector。(后续学习)

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注