我一直试图弄清楚这里到底发生了什么。我只是想弄清楚我在下面评论的这两行代码正在做什么。我发现这个程序没有声明数组的完整维度(而不是 new int[10][5]; 它只是决定不通过说“new int[10][];”来声明它,就像第二个数组长度并不重要(将其更改为 1 或 100 不会影响输出)。
int[][] tri = new int[10][]; //this lack of giving the size of the 2nd array is strange
for (int r=0; r<tri.length; r++) {
tri[r] = new int[r+1]; //I'm not sure what this line is doing really
}
for (int r=0; r<tri.length; r++) {
for (int a=0; a<tri[r].length; a++) {
System.out.print(tri[r][a]);
}
System.out.println();
}
第一行创建一个 int 数组的数组。创建的 int 数组有 10 个槽。
第三行创建一个新的 int 数组并将其放入您最初创建的槽之一中。新的 int 数组中有 r+1 个整数空间。
因此,位置 0 的 int 数组将有 1 个 int 插槽。位置 1 的 int 数组将有 2 个 int 槽。整体shape将: