++frequency[2] ;
我認爲沒有初始化數組的默認值是0 海事組織,這意味着評估 frequency[2]
它是一個零,然後把它加1,並分配它的指數2. 任何人都可以解釋如何得到這個代碼的輸出。在這點上我真的很努力。請問這個預增量的陣列工作
public static void main(String ars[])
{
int responses[] = {1,2,4,4};
int freq[] = new int[5];
for(int answer = 1;answer < responses.length;answer++){
++freq[responses[answer]];
}
for (int rating = 1; rating < freq.length; rating++)
System.out.printf("%6d%10d\n", rating, freq[ rating ]);
//輸出
1 0
2 1
3 0
4 2
那麼,當你嘗試它會發生什麼? –
如果您認爲[Wikipedia](https://en.wikipedia.org/wiki/Uninitialized_variable),它說,* Java沒有未初始化的變量。沒有顯式初始值設定項和數組元素的類和對象的字段會自動使用其類型的默認值進行初始化(布爾值爲false,所有數值類型爲0,所有參考類型爲null)。 Java中的局部變量在被訪問之前必須明確地分配給它,或者它是一個編譯錯誤。* – lurker