关于我正在进行的练习中的二维阵列

时间:2014-03-31 19:40:51

标签: c++ arrays multidimensional-array

我正在做一些练习并且遇到了这个:

  

给定元素类型x的二维数组int,写一个   表达式,其值是第3个元素的总和   第4行/第4列和第5行/第1列中的元素。

现在的解决方案是:

x[2][3] + x[4][0]

我的第一个假设是:

x[3][4] + x[5][1]

这显然是错误的。我有点难以理解为什么答案是这样编写的。任何帮助表示赞赏。

5 个答案:

答案 0 :(得分:1)

在C ++中,数组是零索引的。

答案 1 :(得分:1)

数组从0开始编入索引,因此如果要访问第n 位置的值,则必须使用T[n-1]访问它。

答案 2 :(得分:1)

因为数组是零索引的。数组中的第一个元素始终是Array [0]

答案 3 :(得分:1)

这是因为数组中的指针从0开始,而不是1。

答案 4 :(得分:1)

因为数组以0的索引开头。要更好地理解它,将其转换为指针形式,它将减少为:

x是指向数组的指针:

*(x+0*NO_OF_COL+0) = x[0][0] = 0th row, 0th element,
*(x+0*NO_OF_COL+1) = x[0][1] = 0th row, 1st element,

。 。

*(x+1*NO_OF_COL+0) = x[1][0] = 1st row, 0th element,
*(x+1*NO_OF_COL+1) = x[1][1] = 1st row, 1st element,