有人能解释一下这两个声明的区别吗?
double dArray[][];
double dArray[,];
首先是一个double
数组的数组,这意味着dArray
中的每个单独元素都可能包含不同数量的双精度浮点数,具体取决于数组的长度。
double[][] dArray = new double[3][];
dArray[0] = new double[3];
dArray[1] = new double[2];
dArray[2] = new double[4];
Index
0 1 2
----- ----- -----
L 1 | | | | | |
e ----- ----- -----
n 2 | | | | | |
g ----- ----- -----
t 3 | | | |
h ----- -----
4 | |
-----
double[,] dArray = new dArray[3, 3];
Column
0 1 2
-------------
0 | | | |
R -------------
o 1 | | | |
w -------------
2 | | | |
-------------
最后一个语法很简单,它声明了一个双精度浮点数的多维数组。想象一下这个数组是3x2的,那么数组中就有6个双精度浮点数。
第一个语法声明了一个锯齿形数组。第二个语法是矩形或正方形的,但这种语法不一定是矩形或正方形的。你可以先有三行,接着三列,然后两列,再然后一列,也就是说它是锯齿形的。
2nd: 1-1, 1-2, 1-3
2-1, 2-2, 2-3
1st: 1-1, 1-2, 1-3
2-1, 2-2,
3-1,
double[][] dArray;
和double[,] dArray;
。 - Marlondouble[][]
和double[,]
,而不是在变量名上放置括号。 - BoltClock