2D阵列 - C与Java

时间:2011-09-30 19:20:02

标签: java c arrays programming-languages multidimensional-array

C(int ** arr)中的动态2D数组与Java中的2D数组(int [] [] arr)有什么区别?

C / C ++中的2D数组是否类似于Java中的2D数组?

3 个答案:

答案 0 :(得分:1)

答案会根据您要比较的部分而改变。

在Java中,数组是具有方法和属性的对象,但在C / C ++中,它们不是对象。

它们两者的相似之处在于数组维度可以不同。我的意思是arr [0]可以是3维,arr [1] 5维等等。

Java正在检查数组边界,因此如果您尝试到达数组边界之外的索引,则会抛出异常,但是在C / C ++中不会抛出任何异常,但最终可能会出现“分段错误”。

答案 1 :(得分:0)

非常相似。当然,Java中的数组是完整的对象而不是组成类型的“裸”序列,但是多维数组以相同的方式有效地完成,并带有指向数组的指针数组。

答案 2 :(得分:0)

是的,它们非常相似。 java数组的好处是你不能访问不存在的单元格(你得到一个ArrayOutOfBoundsException)。

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