如何将二维数组中的数组元素分配给变量?
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])) {
// ...
}
}
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])) {
// ...
}
}