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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伍仪华 黑马帝   /  2011-7-29 18:36  /  2297 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

高手能不能详细解释一下:我写的为什么不对。

3 个回复

倒序浏览
黑马网友  发表于 2011-7-29 22:55:14
沙发
int a[][] = new int[3][2]; 创建二维数组后,a[0], a[1], a[2]可以看成是一维数组名,a【0】={1,6}是把数值传给一个数组名,这显然无法赋值。a【0】={1,6}的赋值方式只能在创建数组时使用,表示一维数组包含1,6并且数组名是a【0】.不知道这样理解是否正确?
回复 使用道具 举报

回复 楼主 的帖子

李德国已经解释,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 编辑 ]
回复 使用道具 举报
其实 你可以这么赋值
  1.         int a[][] = new int[3][];
  2.         int b[] ={1,2};
  3.         a[0] = b;
复制代码
[ 本帖最后由 李龙 于 2011-07-30  12:13 编辑 ]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马