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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭璞 中级黑马   /  2012-11-27 19:09  /  1578 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 彭璞 于 2012-11-27 21:23 编辑

为什么数组这样输出是错的,老是受c语言中指针的影响:
int[] arr1 = new int[3];
int[][] arr2 = new int[3][4];
System.out.println(arr[]);
System.out.println(arr[][]);

7 个回复

倒序浏览
int[] arr1 = new int[3];
int[][] arr2 = new int[3][4];
System.out.println(arr1);
System.out.println(arr2);

是这样吧,但是你想输出里面的元素只能用for循环遍历了
回复 使用道具 举报
直接输出arr你试试,不要后面的[]
回复 使用道具 举报
int[] arr1=new arr1[3]
int[][] arr2 = new int[3][4];
System.out.println(arr[]);
System.out.println(arr[][]);
第一 你只是定义了 数组大小,没定义值 所以 是空的
第二 要显示 必须这样
for (int i=0;i<arr1.length();i++){
     System.out.println(arr1[i]);
}
arr2 这样写
for (int i=0;i<3;i++){
     for (int j=0;j<4;j++){
    System.out.println(arr2[i][j]);

}

}

评分

参与人数 1技术分 +1 收起 理由
杨千里 + 1

查看全部评分

回复 使用道具 举报
编译会通过吗?

(}EI4NX5_5]1HRH$T5FE8}L.jpg (15.11 KB, 下载次数: 42)

(}EI4NX5_5]1HRH$T5FE8}L.jpg
回复 使用道具 举报
int[] arr1 = new int[3];
int[][] arr2 = new int[3][4];
System.out.println(arr[]);
System.out.println(arr[][]);

这样输出肯定是不行的,要想输出的话[]中必须有表达式,也就是角标,但是角标不能是数组的最大角标,因为会出现数组越界的错误,
还有就是输出的话值肯定是0,因为你只是定义了数组,却没有赋值,所以默认值都是0
回复 使用道具 举报
只开辟了一个数组空间 数组内没有值 如果输出数组里面的值必须按数组索引输出 这么输出肯定会报错
指定下标输出就没什么问题
回复 使用道具 举报
陈山 中级黑马 2012-11-29 22:29:32
8#
你要打印数组变量的话,就这样:                int[] arr1 = new int[3];
                int[][] arr2 = new int[3][4];
                System.out.println(arr1);
                System.out.println(arr2);
打印的是数组变量所对应的地址值


我想你是想打印数组元素吧,代码如下:
                int[] arr1 = new int[3];
                int[][] arr2 = new int[3][4];
                for(int i=0;i<arr1.length;i++){
                        System.out.println(arr1[i]);
                }
                for(int i=0;i<arr2.length;i++){
                        for(int j=0;j<4;j++){
                                System.out.println(arr2[i][j]);       
                        }       
                }
因为你只是创建了数组,并没有给其中的元素赋值,所以打印出来的是元素对应类型的默认值“0”.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马