JAVA数组问题
import java.util.*;
public class MultiDimArray {
static Random rand = new Random();
static int pRand(int mod) {
return Math.abs(rand.nextInt()) % mod + 1;
}
public static void main(String[] args) {
int [][][] a3 = new int[rand.nextInt(7)][][];
for(int i = 0; i < a3.length; i++) {
a3[i] = new int[pRand(5)][];
for(int j = 0; j < a3[i].length; j++)
a3[i][j] = new int[pRand(5)];
}
for(int i = 0; i < a3.length; i++)
for(int j = 0; j < a3[i].length; j++)
for(int k = 0; k < a3[i][j].length;
k++)
prt("a3[" + i + "][" +
j + "][" + k +
"] = " + a3[i][j][k]);
}
static void prt(String s) {
System.out.println(s);
}
}
这段代码产生的a3[][][]第一次外层循环中a3[i][j]的J在第2次循环中会产生变化的,是吗?而输出的时候,是根据最后次i循环而产生的,跟前面i次没有关系?
参考答案:java是动态分配空间,因此每i行的元素个数为a[i].length,而与其他行的元素个数无关。
你程序中定义的事一个上三角矩阵。第一行为1个元素,第二行为2个……
这与C语言多维数组的定义有一定的区别。