C(int ** arr)中的动态2D数组与Java中的2D数组(int [] [] arr)有什么区别?
C / C ++中的2D数组是否类似于Java中的2D数组?
答案 0 :(得分:1)
答案会根据您要比较的部分而改变。
在Java中,数组是具有方法和属性的对象,但在C / C ++中,它们不是对象。
它们两者的相似之处在于数组维度可以不同。我的意思是arr [0]可以是3维,arr [1] 5维等等。
Java正在检查数组边界,因此如果您尝试到达数组边界之外的索引,则会抛出异常,但是在C / C ++中不会抛出任何异常,但最终可能会出现“分段错误”。
答案 1 :(得分:0)
非常相似。当然,Java中的数组是完整的对象而不是组成类型的“裸”序列,但是多维数组以相同的方式有效地完成,并带有指向数组的指针数组。
答案 2 :(得分:0)
是的,它们非常相似。 java数组的好处是你不能访问不存在的单元格(你得到一个ArrayOutOfBoundsException)。
我认为重要的一点是两个都是引用到一个数组,所以当你将它们传递给一个方法时,没有重复/克隆数组。