2012-12-19 55 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將數組內容初始化爲零。

相關問題