다차원 배열은 2차원 이상의 배열을 말한다. 전에 공부했던 1차원 배열 외에도 2차원, 3차원 배열이 있다.
2차원 배열은 다음과 같이 선언한다.
int arr1[3][4]; // 행이 3개이고 열이 4개인 2차원 배열
int arr2[2][6]; //행이 2개이고 열이 6개인 2차원 배열
컴퓨터의 메모리는 1차원 구조이므로 2차원 배열은 메모리 상에 다음과 같이 존재한다.
👉배열의 행 수를 명시하지 않아도 선언과 동시에 초기화가 가능하다.
int arr[][4] = {1, 2, 3, 4, 5, 6, 7, 8}; // 2X4 배열 생성
열의 수가 정해지면 행의 수도 정해지므로, 위와 같은 문법은 허용된다.
다만, 다음과 같이 쓸 수는 없다.(세로 길이 생략만 가능!)
int arr[4][] = {1, 2, 3, 4, 5, 6, 7, 8}; //오류 발생
int arr[][] = {1, 2, 3, 4, 5, 6, 7, 8}; //오류 발생
3차원 배열은 같은 모양의 2차원 배열이 여러개 있는 것으로 생각하면 된다.
int arr1[2][3][4]; //높이 2, 세로 3, 가로 4인 int형 3차원 배열(세로 3, 가로 4인 배열이 두 개 겹친 형태)
double arr2[5][5][5]; //높이, 세로, 가로가 모두 5인 double형 3차원 배열(세로 5, 가로 5인 배열이 5개 겹친 형태)