首页 > 解决方案 > 如何将二维数组中的数组元素分配给变量?

问题描述

int board[4][8] = {
    {0, 1, 2, 3, 4, 5, 6, 7},
    {1, 2, 3, 4, 5, 6, 7, 8},
    {2, 3, 4, 5, 6, 7, 8, 9},
    {3, 4, 5, 6, 7, 8, 9, 10},
};

int secondRow[8] = board[1]; // <-- error: invalid initializer

for (int i = 0; i < 8; i++) {
    if (someCondition(secondRow[i])) {
        // ...
    }
}

如何将board{1, 2, ..., 7, 8}数组)中的第二个元素分配给secondRow?我是否secondRow改为声明为某种指针?如果是这样,我仍然可以在下面的循环中以相同的方式使用它(或者我应该如何更改它)?

标签: arrayscmultidimensional-array

解决方案


你不能。您必须复制引用它。

你可能想要后者:

int * secondRow = board[1];

for (int i = 0; i < 8; i++) {
    if (someCondition(secondRow[i]))
        ...
}

数组不是 C 和 C++ 中的一等公民。


推荐阅读