2011-09-30 92 views
2

C(int ** arr)中的動態2D陣列與Java中的2D陣列(int [] [] arr)有什麼區別?2D陣列 - C vs Java

C/C++中的2D數組類似於Java中的2D數組嗎?

回答

1

答案會根據你想比較的部分而改變。

在Java中,數組是具有方法和屬性的對象,但在C/C++中它們不是對象。

它們兩者在數組維度可以不同的方面相似。我的意思是arr [0]可以是三維的,arr [1]五維的等等。

Java正在檢查數組邊界,因此如果您嘗試到達數組邊界外的索引,將會拋出異常, C/C++不會拋出異常,但最終可能會出現「分段錯誤」。

0

非常相似。當然,Java中的數組是完整的對象,而不是構成類型的「裸」序列,但是多維數組通過指向數組的指針數組以相同的方式有效地完成。

0

是的,它們非常相似。 java數組的好處是你不能訪問一個不存在的單元格(你會得到一個ArrayOutOfBoundsException)。

我認爲重要的一點是,兩者都是引用到一個數組,所以當你將它們傳遞給一個方法時不會有數組的重複/克隆。