0

关于添加数组的问题。我在下面有这段代码:

B[行][列] = B[行+1][列+1] + B[行][列+1];

假设行 = 2,列 = 3;我不太明白发生了什么。我们有 (=) 分配,所以我猜会分配右边的任何东西,但我不知道如何计算它。在这个例子中,我想到的是:右侧的 13 但这没有意义。我会给 b[row][col] 分配 13 个值???在跟踪程序中显示为2。我不明白,请帮助!

4

2 回答 2

1

我不完全确定您要问的是什么,但本质上您有一个二维数组,而 B[row][col] 语法是访问二维数组中的特定“单元格”。把它想象成一个网格。因此,您对赋值运算符所做的是获取单元格 B[row+1][col+1] 和 B[row][col+1] 中的值,将它们加在一起,然后将结果值分配给单元格B[行][列]。那有意义吗?此外,最好确保这样做不会导致任何索引超出范围异常。

于 2013-10-31T22:39:05.750 回答
0

这在某种程度上取决于您使用的工具/语言,例如 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 = 2andcol = 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  
于 2013-10-31T22:51:45.970 回答