2011-09-30 75 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)。

我认为重要的一点是,两者都是引用到一个数组,所以当你将它们传递给一个方法时不会有数组的重复/克隆。