image.png
/**
- 二维数组初识
- @author gaofuzhi
- double[][] arr20 = new double[3][];//A
- double[] arr23[] = new double[3][];//B
- A==B(只有形式上的不同)
- A:只分配了一维地址 并未分配二维地址(值为null) 所以此时无法对二维数组进行操作
- arr20[0] = {2,4,4};//错误写法 一维数组可以这样写(但实际上隐式new了),二维数组不可以;
- 可以这样写:int[][] arr = {{3,3,4,5},{3,3},{9,0}};//二维静态初始化
- arr20[0] = new double[]{3,3,3,5};//正确写法
- arr20[0] = new double[5];或arr20[0] = new double[]{0,3,3};此时对A、B分配了空间(有地址)
- double[][] arr22 = new double[3][5];C
- double[] arr24[] = new double[3][5];D
- double arr25[][] = new double[3][5];E
- double arr20[][] = new double[][]{{0,8,9,8,8},{9},{0,8,9}};F静态初始化
- C==D==E(只有形式上的不同) F也既分配了一维地址,也分配了二位地址
- 除F以上全属于动态初始化 因为在定义的时候最起码都分配了一维数组的大小
*/