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

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

+0

这是疯狂的代码。为什么你会在这个数组中使用char作为数组索引? –

+2

第一行将创建一个新的数组,其中的所有内容都为0.'a ['t']',''t''字符类型被转换为int类型,我们以ASCII码的形式访问数组't'小写,即0,因为数组中的每个元素都是0. – nhahtdh

+0

你是说打印0? – Shurmajee

回答

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

0
int [] a=new int[256]; 

上面的代码中创建的整数,即整数总是与0,如果初始化数组没有显式值被赋值,如果你已经调用['T'],则返回0.

1

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

0

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

1

你的所作所为是相同的:

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

因为对于“T”的ASCII码为116,那么你访问到INTS的新阵列的位置116,和默认值一个int是0,所以这个数组的所有位置都将有0,除非你指定了不同的东西。

0

当您创建整数数组的对象时,默认情况下数组初始化为0(除非您为其指定一些值)。

1

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

相关问题