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

我在脚本中看到了 ['t']。想知道这是什么意思。我试图执行代码。无论我在 [' t '] 中放入什么字符,它都返回 0,为什么?

4

7 回答 7

3

问:无论我在 a['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

于 2012-12-19T04:45:50.493 回答
1

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

于 2012-12-19T04:47:16.970 回答
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,除非你分配一些东西不同的。

于 2012-12-19T04:48:27.603 回答
1

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

于 2012-12-19T04:52:28.310 回答
0
int [] a=new int[256]; 

上面的代码创建整数数组,即如果没有明确分配值,整数总是用 0 初始化,就像这样,如果你调用了 a['T'],它会返回 0。

于 2012-12-19T04:45:51.050 回答
0

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

于 2012-12-19T04:48:14.447 回答
0

当您创建 Array of Integers 的对象时,Array 默认初始化为 0(除非您为其分配了一些值)。

于 2012-12-19T04:48:46.303 回答