我正在做一些练习并且遇到了这个:
给定元素类型
x
的二维数组int
,写一个 表达式,其值是第3个元素的总和 第4行/第4列和第5行/第1列中的元素。
现在的解决方案是:
x[2][3] + x[4][0]
我的第一个假设是:
x[3][4] + x[5][1]
这显然是错误的。我有点难以理解为什么答案是这样编写的。任何帮助表示赞赏。
答案 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,
等