我今天在C++考试中看到了一道题:
Given the arrayint Multi[2][3][2] = {14,11,13,10,9,6,8,7,1,5,4,2}
,what is the value of Multi[1][1][0]
?
三维数组不应该像这样初始化:{{{},{}},{{},{}},{{},{}}}
吗?有了这样的指标,我怎么能找到元素的值呢?这太让人困惑了.
我今天在C++考试中看到了一道题:
Given the arrayint Multi[2][3][2] = {14,11,13,10,9,6,8,7,1,5,4,2}
,what is the value of Multi[1][1][0]
?
三维数组不应该像这样初始化:{{{},{}},{{},{}},{{},{}}}
吗?有了这样的指标,我怎么能找到元素的值呢?这太让人困惑了.
您可以用这两种方式初始化数组,不过建议使用大括号,因为这样可以提高可读性.
查找未用大括号格式化的多维数组元素的值的最简单方法是拆分该array.例如,数组的维数为2x3x2:
首先将数组拆分为2组(2x3x2)
{14,11,13,10,9,6,8,7,1,5,4,2} --> {{14,11,13,10,9,6}, {8,7,1,5,4,2}}
然后将每组分成3组(2x3x2)
{{14,11,13,10,9,6},{8,7,1,5,4,2}} --> {{{14,11}, {13,10} ,{9,6}}, {{8,7}, {1,5}, {4,2}}}
现在,正如您所看到的,在每个较小的集合(2x3x2)中还剩下2个元素,因此您已经用大括号格式化了array.
现在查找索引为[1][1][0]
的元素的值更简单了.这个元素是第二个([1][1][0])较大集合的第二个([1][1][0])较小集合的第一个([1][1][0])元素,所以答案是1.
话虽如此,这样的试题表明你的老师缺乏专业性,他们更喜欢滥用编程语言语法,而不是教授基本的初始化规则.