如何将二维数组中的数组元素分配给变量?

How do I assign an array element in a 2D array to a variable?

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 声明为某种指针?如果是这样,我是否仍然可以在下面的循环中以相同的方式使用它(或者我应该如何更改它)?

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

你可能想要后者:

int * secondRow = board[1];

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

数组不是 C 和 C++ 中的第一个 class 公民。

也许不是您正在寻找的答案,但如果您已经在 secondRow[i] 中循环,为什么不边走边赋值?

int secondRow[8];

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