2

동적 2D 배열 C (int ** arr)와 Java 2D 배열 (int [] [] arr)의 차이점은 무엇입니까?2D 배열 - C 대 Java

C/C++의 2D Array는 Java의 2D Array와 비슷합니까?

답변

1

답변을 원하는 부분에 따라 변경됩니다.

Java에서 배열은 메서드와 특성을 갖는 개체이지만 C/C++에서는 개체가 아닙니다.

둘 다 배열 차원이 다를 수있는 방식으로 비슷합니다. 제 말은 arr [0]은 3 차원, arr [1] 5 차원 등일 수 있습니다.

Java는 배열 경계를 검사하므로 배열 경계 외부의 인덱스에 도달하려고 시도하면 예외가 발생하지만 C/C++에서도 예외는 없지만 "세분화 오류"가 발생할 수 있습니다.

0

매우 유사합니다. 물론 Java의 배열은 구성 요소 유형의 "베어"시퀀스가 아닌 본격적인 객체이지만 다중 차원 배열은 배열에 대한 포인터의 배열을 사용하여 효과적으로 동일한 방식으로 수행됩니다.

0

예, 상당히 유사합니다. Java 배열의 이점은 존재하지 않는 셀에 액세스 할 수 없다는 것입니다 (ArrayOutOfBoundsException을 얻음).

중요한 비트는 배열에 참조을 참조하므로 메서드에 전달할 때 배열의 복제/복제가 없다고 생각합니다.