为什么这段代码总是返回零?

时间:2012-12-19 04:43:48

标签: java arrays

public static void main(String[] args){
    int [] a=new int[256];
    System.out.println(a['t']);
}

我在script.wonder中看到 a ['t'] 是什么意思。我试图执行代码。无论我在[' t ']中添加什么字符,它都会返回0,为什么?

7 个答案:

答案 0 :(得分:3)

  

问:无论我在['t']中添加什么字符,它都会返回0

您发布的代码并未显示您在[]中添加任何内容。所有元素最初都是“0”。

试试这个:

public static void main(String[] args){
    int [] a=new int[256];
    a['t'] = 'T';
    System.out.println("a['t']: " + a['t']);
}

你应该看到这样的事情:

a['t']: 84

答案 1 :(得分:1)

这是因为int数组没有用任何值初始化,它只是用256大小声明,所以它被默认初始化为默认值0s

答案 2 :(得分:1)

你所做的相当于:

public static void main(String[] args){
    int [] a=new int[256];
    System.out.println(a[116]);
}

因为't'的ascii代码是116,所以你访问一个新的int数组的位置116,并且int的默认值是0,所以这个数组的所有位置都将为0,除非你分配了不同的东西。

答案 3 :(得分:1)

a['t']a[116],为零,因为默认情况下java会将数组内容初始化为零。

答案 4 :(得分:0)

int [] a=new int[256]; 

上面的代码创建了整数数组,即如果没有指定显式值,整数总是用0初始化,如果你调用['T']它会返回0。

答案 5 :(得分:0)

不确定为什么你用't'访问一个int数组,但是't'那里它实际上会先转换为int,它应该是116(ASCII代码为't'),然后就意味着访问[116],并且因为你没有初始化那个数组,所以该数组中的所有元素都应该默认设置为0,所以你得到了那个结果。

答案 6 :(得分:0)

当您创建Array of Integers对象时,默认情况下Array默认为0(除非您为其指定一些值)。