黑马程序员技术交流社区

标题: java二尾数组 [打印本页]

作者: 伍仪华    时间: 2011-7-29 18:36
标题: java二尾数组
int a[][] = new int[3][2];
a[0] = {1,6};
报错:第二句是非法表达式。为什么?我是初学者,我想为这个三维数组的第一维赋值,哪位高手能指出我的程序到底错在哪了,为什么不能这样赋值?问题补充:

高手能不能详细解释一下:我写的为什么不对。
作者: 匿名    时间: 2011-7-29 22:55
int a[][] = new int[3][2]; 创建二维数组后,a[0], a[1], a[2]可以看成是一维数组名,a【0】={1,6}是把数值传给一个数组名,这显然无法赋值。a【0】={1,6}的赋值方式只能在创建数组时使用,表示一维数组包含1,6并且数组名是a【0】.不知道这样理解是否正确?
作者: 杨武刚    时间: 2011-7-30 12:07
标题: 回复 楼主 的帖子
李德国已经解释,int a[][] = new int[3][2]; 创建二维数组后,a[0], a[1], a[2]可以看成是一维数组名,是把数值传给一个数组名,这显然无法赋值。
也即是说,创建了三个一维数组,a[0][ ](这里面有两个元素a[0][0],a[0][1]), a[1][ ](这里面有两个元素a[1][0],a[1][1]), a[2][ ](这里面有两个元素a[2][0],a[2][1])
总之,Java中没有真正意义的二维数组
赋值方式:
a[0][0]=1;        a[0][1]=6; ...

另外,楼主可不可以把错别字纠正了,是二维数组,不是二尾数组,谢了,那样看起来顺眼点
[ 本帖最后由 杨武刚 于 2011-07-30  12:10 编辑 ]
作者: 李龙    时间: 2011-7-30 12:12
其实 你可以这么赋值
  1.         int a[][] = new int[3][];
  2.         int b[] ={1,2};
  3.         a[0] = b;
复制代码
[ 本帖最后由 李龙 于 2011-07-30  12:13 编辑 ]




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