呵呵,楼主的问题我试了一下看看能不能以第二种方式打印,最终还是解决不了。
不过我发现了几点问题,代码如下:
public class Test
{
public static void main(String[] args)
{
int[][] a = {{1,2,3}, {4,5}, {6,7,8,9}};
/*for (int i = 0; i < a.length; i++)
{
for (int j = 0; sizeof(a[i])/sizeof(Integer); j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println();
}*/
System.out.println(a[1][2]);
}
}
1.我原本还想着Java里有跟C语言里一样的sizeof()方法。后来知道没有。上网查了一下,也没找到在java中实现类似sizeof()方法的办法。
那么java中可以实现类似sizeof()的功能吗?怎样实现?
2.我试着打印数组里某个元素的值。System.out.println(a[1][2]);,如果在C里,可以确定输出的结果是0。但是这里运行时却报了异常:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2。访问数组越界。这说明一个问题:int[][] a = {{1,2,3}, {4,5}, {6,7,8,9}};该数组创建以后,并不是像C语言那样有三行四列,而是每一行的列数都是不同的。分别是:3列,2列,4列。
是不是可以这样理解:int[][] a = {{1,2,3}, {4,5}, {6,7,8,9}};数组a创建后,在内存里不存在a[0][3],a[1][2],a[1][3]这三个元素。那么数组a的大小应该是4*9=36个字节,不是4*12=48个字节。对吗?
|