黑马程序员技术交流社区

标题: 数组问题 [打印本页]

作者: 天方地圆    时间: 2014-4-10 18:58
标题: 数组问题
  1. public static void main(String[] args) {
  2.                 int[] arr = new int[10];
  3.                
  4.                 System.out.println(arr[0]);
  5.         }
复制代码

不论是arr[0]还是其他怎么这个结果 都是0?


作者: 徘徊消逝中    时间: 2014-4-10 19:00
你没有初始化,默认为0
作者: 赵小豪    时间: 2014-4-10 19:24
本帖最后由 赵小豪 于 2014-4-10 19:35 编辑

对啊,这个数组没有进行赋值,那么声明后int类型的初始值都是0.

20140410193518476.jpg (138.94 KB, 下载次数: 29)

20140410193518476.jpg

作者: 李乾    时间: 2014-4-10 19:41
int类型数组内的元素没有初始化,默认的初始化值是0
作者: fufeng    时间: 2014-4-10 19:49
因为新创建的int类型数组中,默认的初始化值为0
作者: 张耀扬    时间: 2014-4-10 22:27
public static void main(String[] args) {
                int[] arr = new int[10];
               
                System.out.println(arr[0]);
        }
系统在你没有给整形变量赋值时,默认值为0 ;
类似的,布尔型默认为false

作者: luoyilan222    时间: 2014-4-10 22:39
int数组默认值被初始化为0  说以数组小标0-9中的值全部是0
作者: leon_hm    时间: 2014-4-10 23:18
int类型没赋值,默认为0;因为int是基本类型。
下面代码,打印的值一个为0,一个为null。
int这种基本类型不能赋值为null。默认就是0.
String这种引用类型的,默认就是null了。
  1. int[] intarr=new int[5];
  2.                 System.out.println(intarr[0]);
  3.                 String[] strarr=new String[5];
  4.                 System.out.println(strarr[0]);
复制代码


作者: 果粒橙Cc    时间: 2014-4-10 23:35
数组在堆内存中默认初始化值为0。你只表示了数组的长度没有给它进行初始化
作者: NO?    时间: 2014-4-11 00:25
飘过:默认初始化值
作者: lzhuas    时间: 2014-4-11 10:52
数据在没有赋值前是默认为0,但是多维数据就不是这样的。例如二维:
//二维数据初始化的默认值。
public class Test {
        public static void main(String[] args){
                int[][] arr = new int[3][4];
                System.out.println(arr[0]);
        }
}


输出是[I@1fe8714    地址值
作者: 王春蕾    时间: 2014-4-11 16:23
因为一维数组在初始化之后没有被赋值的话,数组中的每个元素(注意,是一维数组,二维数据是不一样的)的值就会取该数据类型的默认值,也就是int类型的默认初始化值0,所以arr数组中每个元素的值都是0
作者: 闲人勿进    时间: 2014-4-11 16:48
你上面写的 new int[10],是指 这数组大小是10,而你下面打印arr【0】,是打印该数组第一个数据,数据默认初始化是0,所以你打印的都是0,如果你想打印别的东西,你得赋予这数组数据
作者: K.L.Zous    时间: 2014-4-11 17:05
欧~ int[] arr 没有初始化 数组默认值为0  这个很容易理解啊 不然你认为他应该是什么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2