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

c++二维数组赋值

作者:野牛程序员:2023-07-22 12:07:18 C++阅读 2957

在C++中,你可以使用多种方法来赋值二维数组。以下是几种常见的方式:

  1. 使用循环逐个赋值:

#include <iostream>

const int ROWS = 3;
const int COLS = 4;

int main() {
    int arr[ROWS][COLS];

    // 使用循环逐个赋值
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            arr[i][j] = i * COLS + j; // 或者根据实际需求赋不同的值
        }
    }

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

    return 0;
}
  1. 使用初始化列表(C++11及更高版本支持):

#include <iostream>

const int ROWS = 3;
const int COLS = 4;

int main() {
    // 使用初始化列表进行赋值
    int arr[ROWS][COLS] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

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

    return 0;
}
  1. 使用memcpy函数(适用于动态分配的二维数组):

#include <iostream>
#include <cstring>

const int ROWS = 3;
const int COLS = 4;

int main() {
    // 动态分配二维数组
    int** arr = new int*[ROWS];
    for (int i = 0; i < ROWS; i++) {
        arr[i] = new int[COLS];
    }

    int values[ROWS][COLS] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

    // 使用memcpy函数进行赋值
    for (int i = 0; i < ROWS; i++) {
        std::memcpy(arr[i], values[i], sizeof(int) * COLS);
    }

    // 输出数组元素
    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;
}

请根据实际需求选择合适的方法来赋值二维数组。第一种方法适用于静态数组或者固定大小的数组,而第二和第三种方法适用于动态分配的数组或者需要复制其他二维数组的情况。


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

最新推荐

热门点击