黑马程序员技术交流社区

标题: 二维数组定义方式的理解问题 [打印本页]

作者: 梅雄新    时间: 2012-2-8 00:12
标题: 二维数组定义方式的理解问题
本帖最后由 梅雄新 于 2012-2-8 22:37 编辑

我知道定义二维数组的方式有两种如
int a[][]={{0,0},{1,1},{2,2}};
int a[][]=new int[2][3];然后赋值
为什么不能
int a[2][3]={{0,0},{1,1},{2,2}};

作者: 张建银    时间: 2012-2-8 00:20
哥们好像写错了吧  int[][] a=new int[2][3];
int[2][3] a={{0,0},{1,1},{2,2}}如果是这样,int[2][3] 就不是Type类型了就成对象了
变量声明 一般是:类型+引用名

作者: 许涛    时间: 2012-2-8 01:04
int[2][3]的含义是:二维数组中有2个一维数组。每个一维数组中有3个元素。
应该这样书写:
int[][] arr = new int[2][3];
int[][] arr = new int[][] {{1,2,3},{4,5,6}};        也可简写为:int[][] arr ={{1,2,3},{4,5,6}};
作者: 戴振良    时间: 2012-2-8 22:17
本帖最后由 戴振良 于 2012-2-8 22:19 编辑

这个还是把问题简单化吧,sun公司开发规定的,我们只要记住声明数组时不能指定其长度,否则编译时将出错就行了,如:int a[5];//这个样的声明是错误的
我个人认为,只要记住上面的规定就足够用的了,没必要去追究再深的。
作者: 余海龙    时间: 2012-2-8 22:30
int a[2][3]={{0,0},{1,1},{2,2}};
首先这样定义数组的想法就使错误的。
int a[] []  中的两个中括号[] [] 是二维数组的标志,中括号中不能写东西。

前面可以写成:
1,int a[] [] = new int[2][3];
2,int[] a[]  = new int[2][3];
3,int[][] a  = new int[2][3];

而且数组定义时要么指定元素,要么必须给出长度。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2