多维数组中的括号顺序

xva*_*van 0 c language-design

整数数据[3][5];

是 5 元素数组的 3 元素数组。

为什么?对我来说,直觉上 ifint[3]是一个 3 元素数组,而int[3][5]应该是3 元素数组的 5 元素数组。

Eug*_*Sh. 5

直觉应该来自索引约定 - 因为它是一个数组数组,第一个索引是选择数组元素,第二个索引是选择所选数组的元素。那是:

data[2][4] 将选择数组编号 2 的元素编号 4(注意从零开始)。

现在,正如您所指出的那样,这样一个数组的定义似乎有点违反直觉,但显然这种方式只是为了与索引语法保持一致,否则会更加混乱。