arrays - 如何将二维数组中的数组元素分配给变量?
问题描述
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++ 中的一等公民。
推荐阅读
- android - Android 11 显示指标
- matlab - 在 MATLAB 中训练 ANFIS 时出现警告
- powershell - 如何使用 powershell 创建包含特定类型文件列表的文本文件?
- python - 如何将命令行选项传递给“烧瓶运行”
- python - 嵌套的 for 循环随着时间的推移变得越来越慢
- powershell - icacls.exe 在 Windows 10 操作系统上无法正常工作
- rust - 如何在我只有一个`syn::buffer::Cursor`的上下文中使用`syn::parse::Parse`(或更一般地说,`ParseBuffer`)?
- batch-file - dos批处理文件中的:PROMPT是什么意思?
- c# - 在 Windows 10 上具有多个虚拟桌面的 C# UI 自动化 API
- java - 在 aerospike 中第一次在 bin 中插入数据,然后是增量