L'un est un tableau de tableaux, et on est un tableau 2d. Les premières peuvent être irréguliers, ce dernier est uniforme.
C'est, double[][]
peut valablement être:
double[][] x = new double[5][];
x[0] = new double[10];
x[1] = new double[5];
x[2] = new double[3];
x[3] = new double[100];
x[4] = new double[1];
Parce que chaque entrée dans le tableau est une référence à un tableau d' double
. Avec un tableau en escalier, vous pouvez faire une cession à un tableau comme vous le souhaitez dans votre deuxième exemple:
x[0] = new double[13];
Sur le deuxième point, parce que c'est un uniforme tableau 2d, vous ne pouvez pas affecter un 1d tableau à une ligne ou une colonne, car vous devez l'indice de la ligne et de la colonne, qui descend jusqu'à un seul double
:
double[,] ServicePoint = new double[10,9];
ServicePoint[0]... // <-- meaningless, a 2d array can't use just one index.
Mise à JOUR:
À préciser en fonction de votre question, la raison n ° 1 avait une erreur de syntaxe est parce que vous avez eu ce:
double[][] ServicePoint = new double[10][9];
Et vous ne pouvez pas spécifier le deuxième indice au moment de la construction. La clé est que ServicePoint est pas un tableau 2d, mais un tableau 1d (des tableaux) et donc, puisque vous êtes la création d'un tableau 1d (des tableaux), vous spécifiez un seul indice:
double[][] ServicePoint = new double[10][];
Ensuite, lorsque vous créez chaque élément d'un tableau, chacun de ceux-ci sont aussi des tableaux, donc ensuite, vous pouvez spécifier leurs dimensions (qui peut être différente, d'où le terme de jagged tableau):
ServicePoint[0] = new double[13];
ServicePoint[1] = new double[20];
Espérons que ça aide!