关于添加数组的问题。我在下面有这段代码:
B[行][列] = B[行+1][列+1] + B[行][列+1];
假设行 = 2,列 = 3;我不太明白发生了什么。我们有 (=) 分配,所以我猜会分配右边的任何东西,但我不知道如何计算它。在这个例子中,我想到的是:右侧的 13 但这没有意义。我会给 b[row][col] 分配 13 个值???在跟踪程序中显示为2。我不明白,请帮助!
关于添加数组的问题。我在下面有这段代码:
B[行][列] = B[行+1][列+1] + B[行][列+1];
假设行 = 2,列 = 3;我不太明白发生了什么。我们有 (=) 分配,所以我猜会分配右边的任何东西,但我不知道如何计算它。在这个例子中,我想到的是:右侧的 13 但这没有意义。我会给 b[row][col] 分配 13 个值???在跟踪程序中显示为2。我不明白,请帮助!
我不完全确定您要问的是什么,但本质上您有一个二维数组,而 B[row][col] 语法是访问二维数组中的特定“单元格”。把它想象成一个网格。因此,您对赋值运算符所做的是获取单元格 B[row+1][col+1] 和 B[row][col+1] 中的值,将它们加在一起,然后将结果值分配给单元格B[行][列]。那有意义吗?此外,最好确保这样做不会导致任何索引超出范围异常。
这在某种程度上取决于您使用的工具/语言,例如 matlab 从 1 开始索引数组,所以数组 a 的第一个元素是a[1]
,而像 C/Java 这样的语言从 0 开始索引,所以数组 a 的第一个元素是a[0]
。
让我们假设索引是像在 C/Java 中一样完成的,然后考虑一个多维数组 B
12 13 14 11
41 17 23 22
18 10 20 38
81 17 32 61
然后使用row = 2
andcol = 3
你将把它B[row][col]
作为位于第三行的元素(记住索引从 0 开始,B[2]
第三行也是如此)和第四列,在 * 符号之间标记。
12 13 14 11
41 17 23 22
18 10 20 *38*
81 17 32 61
至于改变多维数组中的值,是通过为旧值的索引分配一个新值来完成的。
B[row][col] = B[row+1][col+1] + B[row][col+1];
我们row=1
得到_col=0
B[1][0] = B[2][1] + B[1][1];
B[1][0] = 10 + 17;
B[0][0] = 27;
或者:
12 13 14 11 12 13 14 11
(41) 17 23 22 (27) 17 23 22
18 10 20 38 ==> 18 10 20 38
81 17 32 61 81 17 32 61