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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天ya~_琼楼 中级黑马   /  2013-12-1 18:54  /  1243 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

下面代码中那一个不能够创建一个数组?
A. float []f[] = new float[6][6];
B.float f[][] = new float[][];           
C.float [6][]f = new float[6][6];
D. float [][]f = new float[6][];     


答案是B和C,B我还明白原因,但是我不知道C为什么不能够创建。请各位大神解惑,最好把A、B、C、D都解释一下,以防止我对这几项理解的错误,谢谢!

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 神马都是浮云

查看全部评分

3 个回复

倒序浏览
我在想该怎么解释
A. float []f[] = new float[6][6];
解释:其实主要的迷惑点在前面的引用变量float []f[],这个表示的是一个二维数组,其实可以拆分来看,float []表示声明一维数组变量,f[]也表示一维数组,这样写理解为一维数组的嵌套就好了,在一维数组里面再声明一个一维数组,就得到一个二维数组了...难描述,但我就是这样理解的

B.float f[][] = new float[][];   
解释:这里指明是静态声明二维数组,必须给指定数组的大小,应该为float f[][] = new float[1][1];
又或者你可以声明为动态声明二维数组,这样可以不知道数组的大小为float f[][] = new float[][];{{1.0f}{2.0f}},这样也可以
   
C.float [6][]f = new float[6][6];
解释:问题是出在前面的变量类型声明,即前面必须是数组类型,很明显“float [6][]f ”这个不属于一个数组类型,float [][]f这样才是数组类型
D. float [][]f = new float[6][];     
解释:前面的变量类型解释同上,如果需要解释就是new float[6][];  这个表示声明一个不规则的数组,可以单独为行继续声明
f[0] = new float[2]//为第一行分配2列
f[1] = new float[3]//为第二行分配3列
。。。。。

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 神马都是浮云

查看全部评分

回复 使用道具 举报 2 0
Jim-剣◆﹏ 发表于 2013-12-1 19:31
我在想该怎么解释
A. float []f[] = new float[6][6];
解释:其实主要的迷惑点在前面的引用变量float []f[ ...

我懂了,谢谢!
回复 使用道具 举报
下次问题解决了就把类型改成提问结束!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马