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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 兜兜转转 中级黑马   /  2013-8-25 01:28  /  1980 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 forward 于 2013-8-26 21:32 编辑

int[][] arry =new int[3][];
此二维数组中含有3个一维数组,每个一维数组的默认初始化值都为null,每个一维数组中的元素值都为0?  这种定义方法没一个一维数组怎么是null呢,为什么不是0?每个一维数组中的元素值都为0?

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

6 个回复

倒序浏览
这个问题很绕。我理解错的话,应该是数据类型默认值的问题。
数组是引用数据类型,默认值是null。
而int[]数组嘛,里面的元素都是int型,int型的默认值都是0。
就这样。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
这条定义中,只声明了arr有3个一维数组,但是一维数组里还没有明确定义,所以赋值为空,无角标

点评

说到点上了!  发表于 2013-8-25 08:25

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
你这么做只是指定了二维数组中有三个一维数组,但是对于这三个一维数组中有什么内容则没有指定,所以系统会使用默认值。
这个问题你可以将他分解的简单一点:
int[] array = new int[];      //考虑一下这个array里有什么?
这个问题就和你这个问题差不多,array里的内容则是你的问题中一维数组中的内容,这么考虑就简单点。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
如果您的问题已经解决
请更改分类未解决为已解决
保持队形,谢谢合作

详情参考 如何修改分类
回复 使用道具 举报
  1. import static java.lang.System.out;
  2. class Sign{
  3.         public static void main(String args[]){
  4.                 int[][] arry = new int[2][];
  5.                 out.println(arry[0]);//null
  6.                 //out.println(arry[0][0]);//这样写是运行错误的,空指针;所以不存在初始化为0这一说       
  7.         }
  8. }
复制代码
建议看一下毕向东视频,第4天13(二维数组)。下图仅供参考

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马