黑马程序员技术交流社区
标题:
关于二维数组动态初始化大小的疑问.
[打印本页]
作者:
折纸时代
时间:
2012-11-10 17:34
标题:
关于二维数组动态初始化大小的疑问.
二维数组的书写方法是:
int[][] iArr; // 数据类型是:int[] (int[]也是数据类型),变量名:iArr
按照这样的书写方法的话:
int[][] iArr == (int[])[] iArr //"()"内表示一个整体
但是,二维数组初始化大小的书写方法是:
int[][] iArr = new int[3][4]; //为int[]数组初始化长度为4,为int[][]二维数组初始化长度为3
既然,int[] 是一个数据类型(引用类型),
初始化长度不是应该这样写:
int[][] iArr = new int[4][3]; //int[]是一个数组类型,(int[])[]又是一个引用数组类型
如果按照第一个写法,感觉书写方法中的数据类型有点别扭...
按照第二种写法,好像是从大到小的. "栈内存 --> 二维(引用)数组 --> 一维(int)数组;"
作者:
张钧杰
时间:
2012-11-10 23:20
int[][] iArr; 这是java程序中的书写规范, 也可以写成int iArr [] [],此时它只声明了一个二维数组 在栈内存中,并未在堆内存开辟空间,值为null.
nt[][] iArr == (int[])[] iArr //"()"内表示一个整体 这种情况,我没见过,希望我的回答对你有帮助!
作者:
折纸时代
时间:
2012-11-11 17:44
本帖最后由 司懿卓 于 2012-11-11 18:07 编辑
张钧杰 发表于 2012-11-10 23:20
int[][] iArr; 这是java程序中的书写规范, 也可以写成int iArr [] [],此时它只声明了一个二维数组 在 ...
我是对这种书写规范有点疑问,
既然 int[] 是int[][]中的数组元素, 不就相当于 int[]是一个整体 ,(int[])这样就相当于提升了优先级,说明它是一个整体.. 没有别的意思..
既然int[]是数组中的数组,那么动态初始化长度时不应该 int[3]是 一维数组的长度为3. int[][4]二维数组的长度为4么???
这样int[3][4] 就相当于 一维长度为3 ,二维长度为4... 但,实际这样的动态初始化是 一维数组长度为4,二维数组长度为3... 这就是疑问..
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2