小杨用一个二维数组表示棋盘,其中 $1$ 表示有棋子,$0$ 表示没有棋子。他想知道第 $2$ 行 第 $3$ 列有没有棋子,可采用的代码是:( )。
int a[3][4] = {
{1, 0, 1, 0},
{0, 1, 0, 1},
{1, 1, 0, 0}
};答案B。二维数组在内存中按行优先连续存储。int array[5][3]中元素按array[0][0]到array[4][2]的顺序连续排列。
二维数组按行优先存储。计算偏移量先确定每行元素个数再乘行号+列号。
【考点】二维数组定义|数组下标访问|C++输出语法
本题考查 GESP 四级大纲"数组"模块的核心语法点。命题人专门在此处设卡——绝大多数考生会凭直觉选 A(逗号分隔看起来更舒服),却不知 C++ 数组访问必须用方括号嵌套,这是从 C 语言到 C++ 最基础的语法陷阱。