You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++二维数组WINNING_ROWS读取结果与预期不符异常排查

问题原因

你在二维数组初始化时错误使用了圆括号()而非花括号{},触发了C++的逗号运算符规则,导致初始化结果完全不符合预期。

C++中逗号运算符会从左到右依次计算每个操作数,最终返回最后一个操作数的值。你写的(0, 1, 2)最终等效于单个数值2,以此类推,你给出的8个括号实际生成了8个单独的初始化值:2、5、8、6、7、8、8、6。

二维数组初始化时会按行优先顺序填充元素,你定义的数组总共有8*3=24个int元素,前8个位置依次填入上面的8个值,剩余未显式初始化的元素会被自动置为0,这完全匹配你测试得到的所有结果。


修正方案

将初始化的所有圆括号替换为花括号即可:

const int WINNING_ROWS[8][3] = { {0, 1, 2},
                                 {3, 4, 5},
                                 {6, 7, 8},
                                 {0, 3, 6},
                                 {1, 4, 7},
                                 {2, 5, 8},
                                 {0, 4, 8},
                                 {2, 4, 6} };

修改后所有数组元素访问操作就会返回预期值。


内容的提问来源于stack exchange,提问作者Micah Lehman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:06:05