A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 折纸时代 中级黑马   /  2012-11-10 17:34  /  2187 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

二维数组的书写方法是:
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)数组;"

2 个回复

倒序浏览
int[][] iArr;     这是java程序中的书写规范, 也可以写成int iArr [] [],此时它只声明了一个二维数组 在栈内存中,并未在堆内存开辟空间,值为null.
nt[][] iArr == (int[])[] iArr  //"()"内表示一个整体 这种情况,我没见过,希望我的回答对你有帮助!
回复 使用道具 举报
本帖最后由 司懿卓 于 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...   这就是疑问..
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马