동적 2D 배열 C (int ** arr)와 Java 2D 배열 (int [] [] arr)의 차이점은 무엇입니까?2D 배열 - C 대 Java
C/C++의 2D Array는 Java의 2D Array와 비슷합니까?
동적 2D 배열 C (int ** arr)와 Java 2D 배열 (int [] [] arr)의 차이점은 무엇입니까?2D 배열 - C 대 Java
C/C++의 2D Array는 Java의 2D Array와 비슷합니까?
답변을 원하는 부분에 따라 변경됩니다.
Java에서 배열은 메서드와 특성을 갖는 개체이지만 C/C++에서는 개체가 아닙니다.
둘 다 배열 차원이 다를 수있는 방식으로 비슷합니다. 제 말은 arr [0]은 3 차원, arr [1] 5 차원 등일 수 있습니다.
Java는 배열 경계를 검사하므로 배열 경계 외부의 인덱스에 도달하려고 시도하면 예외가 발생하지만 C/C++에서도 예외는 없지만 "세분화 오류"가 발생할 수 있습니다.
매우 유사합니다. 물론 Java의 배열은 구성 요소 유형의 "베어"시퀀스가 아닌 본격적인 객체이지만 다중 차원 배열은 배열에 대한 포인터의 배열을 사용하여 효과적으로 동일한 방식으로 수행됩니다.
예, 상당히 유사합니다. Java 배열의 이점은 존재하지 않는 셀에 액세스 할 수 없다는 것입니다 (ArrayOutOfBoundsException을 얻음).
중요한 비트는 배열에 참조을 참조하므로 메서드에 전달할 때 배열의 복제/복제가 없다고 생각합니다.