当前位置:首页 C++ > 正文

C++获取数组大小和多维数组操作详解

作者:野牛程序员:2024-06-09 08:09:45 C++阅读 2386
C++获取数组大小和多维数组操作详解

在C++中,获取数组大小和操作多维数组是常见的任务。以下是详细的说明。

获取数组大小

一维数组

对于静态分配的一维数组,可以使用 sizeof 运算符来获取数组的大小。

#include <iostream>

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]); // 计算数组元素的数量
    std::cout << "数组大小: " << size << std::endl;
    return 0;
}

sizeof(arr) 返回数组的总字节数,sizeof(arr[0]) 返回数组中一个元素的字节数,二者相除得到数组的元素个数。

动态数组

对于动态分配的数组,需要手动记录数组大小,因为 sizeof 对动态数组无效。

#include <iostream>

int main() {
    int n = 5;
    int* arr = new int[n]; // 动态分配数组
    // 初始化数组
    for(int i = 0; i < n; ++i) {
        arr[i] = i + 1;
    }
    // 输出数组大小
    std::cout << "数组大小: " << n << std::endl;
    delete[] arr; // 释放内存
    return 0;
}

多维数组操作

二维数组

声明和初始化二维数组:

#include <iostream>

int main() {
    int arr[3][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

    // 遍历二维数组
    for(int i = 0; i < 3; ++i) {
        for(int j = 0; j < 4; ++j) {
            std::cout << arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
    return 0;
}

动态分配二维数组

使用指针实现动态分配的二维数组:

#include <iostream>

int main() {
    int rows = 3;
    int cols = 4;
    // 动态分配行指针数组
    int** arr = new int*[rows];
    // 动态分配列
    for(int i = 0; i < rows; ++i) {
        arr[i] = new int[cols];
    }

    // 初始化数组
    for(int i = 0; i < rows; ++i) {
        for(int j = 0; j < cols; ++j) {
            arr[i][j] = i * cols + j + 1;
        }
    }

    // 输出数组
    for(int i = 0; i < rows; ++i) {
        for(int j = 0; j < cols; ++j) {
            std::cout << arr[i][j] << " ";
        }
        std::cout << std::endl;
    }

    // 释放内存
    for(int i = 0; i < rows; ++i) {
        delete[] arr[i];
    }
    delete[] arr;

    return 0;
}

这种方式需要手动管理内存,确保在使用完成后正确释放。

总结

通过 sizeof 运算符可以获取静态数组的大小,对于动态数组需要手动记录大小。多维数组可以通过嵌套循环进行操作,无论是静态分配还是动态分配,记得在使用完动态分配的数组后进行内存释放。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 数组
  • 相关推荐

    最新推荐

    热门点击