我试着阅读有关数组及其语法的内容。似乎只有一种方法可以在代码中键入二维数组。所以我想在继续之前确定。那么,是否有可能用不同于array [i] [j]的不同语法编写二维数组?
示例:如果我有数组[4] [4],是否可以键入数组[16]而不是通常的方式?是否被认为是一个二维数组?
答案 0 :(得分:2)
请注意,建模允许您使用[][]
进行索引的二维数组会受到
另一种方法是使用连续的块并使用row * i + j
表示法访问(i, j)
处的元素。在函数中编码是惯用的。
所以我建议做后者。如果需要,您始终可以将实现切换回锯齿状内存;保留您已编写的功能原型。
答案 1 :(得分:2)
是推荐的,创建2D数组的正确方法是array[4][4]
,这意味着array[row][column]
。
array[16]
不代表2D数组,而是1D数组。
这是一个演示阵列结构的图像
答案 2 :(得分:0)
要声明二维数组,只有下标符号类似于arr [] []。 2D数组仅用于简化元素的访问,
二维数组的指针表达式:
the array name itself is a pointer to first sub array,
arr:
will be pointer to first sub array, not the first element of first sub
array, according to relationship of array & pointer, it also represent
the array itself,
arr+1:
will be pointer to second sub array(row), not the second element of first sub(row)
array,
*(arr+1):
will be pointer to first element of second sub array(row),
according to relationship of array & pointer, it also represent second sub array(row), same as arr[1],
*(arr+1)+2:
will be pointer to third element of second sub array(row),
*(*(arr+1)+2):
will get value of third element of second sub array(row),
same as arr[1][2],