目次
1. 소개
C 언어에서의 「2차원 배열」은 많은 프로그래밍 상황에서 사용되는 중요한 데이터 구조입니다. 단순한 1차원 배열로는 어려운 복잡한 데이터의 관리와 조작을 쉽게 해줍니다. 이 기사에서는 2차원 배열의 기본부터 응용까지를 자세히 설명하고, 프로그래밍 초보자부터 중급자까지의 이해를 깊게 하는 것을 목표로 합니다.2. 2차원 배열이란
2.1 기본 개념
2차원 배열은 행과 열의 두 인덱스를 사용하여 데이터를 저장하는 배열입니다. C 언어에서는 다음과 같이 정의됩니다.데이터형 배열명[행의 수][열의 수];
예를 들어, int matrix[3][4];
와 같이 선언하면, 3행 4열의 정수형 2차원 배열이 생성됩니다. 이 배열은 1차원 배열이 여러 개 모여 있는 것으로 생각하면 이해하기 쉽습니다.2.2 2차원 배열의 용도
2차원 배열은 RPG의 맵이나 표 형식의 데이터 등, 가로와 세로로 데이터가 배열된 형태를 관리하는 데 적합합니다. 또한 이미지의 픽셀 정보나 게임 보드를 다룰 때도 자주 사용됩니다. 2차원 배열을 사용함으로써 데이터 관리가 효율적이 되고, 프로그램의 가독성도 향상됩니다.3. 2차원 배열 선언 및 초기화
3.1 선언 방법
2차원 배열을 선언할 때의 기본 구문은 다음과 같습니다。int matrix[3][4];
이는, 3행 4열의 정수형 배열을 선언합니다. 각 요소는 초기화되지 않았으므로 주의가 필요합니다。3.2 초기화 방법
선언과 동시에 2차원 배열에 초기값을 설정하는 것도 가능합니다。int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
이 코드에서는 matrix
배열이 2행 3열의 배열로 생성되고, 각각의 요소에 지정된 값이 할당됩니다. 또한, 요소 수를 생략하여 초기화할 수도 있습니다。int matrix[][3] = {{1, 2, 3}, {4, 5, 6}};
이 경우, 컴파일러가 자동으로 행 수를 판단하여 배열을 초기화합니다。4. 2차원 배열 요소에 접근하기
4.1 요소 접근 방법
2차원 배열의 특정 요소에 접근하려면 행과 열 인덱스를 지정합니다。matrix[1][2] = 10;
이 예에서는 matrix
의 2행 3열 요소에 값 10
을 할당하고 있습니다。인덱스는 0부터 시작하므로、matrix[1][2]
는 배열의 2행 3열을 가리킵니다。 
4.2 루프를 사용한 접근
2차원 배열의 모든 요소에 접근하기 위해 이중for
루프를 사용합니다。for (int i = 0; i < 행의 수; i++) {
for (int j = 0; j < 열의 수; j++) {
printf("%d ", matrix[i][j]);
}
printf("n");
}
이 코드는 2차원 배열의 모든 요소를 하나씩 처리하고 그 내용을 표시합니다。첫 번째 루프가 행을、두 번째 루프가 열을 제어합니다。5. 2차원 배열 활용 예시
5.1 기본적인 예시
다음 예시는 2명의 학생의 3과목 성적을 2차원 배열로 관리하고, 각각의 성적을 표시하는 프로그램입니다。int scores[2][3] = {{72, 80, 90}, {65, 75, 85}};
for (int i = 0; i < 2; i++) {
printf("학생%d의 성적:n", i + 1);
for (int j = 0; j < 3; j++) {
printf("과목%d: %d점n", j + 1, scores[i][j]);
}
}
이 프로그램에서는 2차원 배열을 사용하여 학생의 성적을 관리하고, 루프를 사용해 각 요소를 출력합니다。5.2 동적 2차원 배열 할당
동적 메모리 할당을 사용하여 2차원 배열을 만드는 방법도 있습니다. 아래 예제를 살펴보세요。int (*matrix)[3] = malloc(sizeof(int) * 行の数 * 3);
for (int i = 0; i < 行の数; i++) {
for (int j = 0; j < 3; j++) {
matrix[i][j] = i * 3 + j;
}
}
free(matrix);
여기서는 malloc
을 사용하여 메모리를 동적으로 할당하고 있습니다. 이 방법으로 2차원 배열의 크기를 실행 시에 결정할 수 있습니다. 메모리 사용이 끝나면 반드시 free
를 사용하여 메모리를 해제하도록 합시다。6. 2차원 배열 응용
6.1 다차원 배열
2차원 배열 개념을 더욱 확장하면, 3차원 이상의 다차원 배열을 다룰 수 있습니다. 예를 들어, 3차원 배열은 다음과 같이 정의합니다.int array[2][3][4];
이 배열은 2×3×4개의 요소를 가지고, 3개의 인덱스로 요소에 접근합니다. 다차원 배열을 사용함으로써, 보다 복잡한 데이터 구조를 효율적으로 관리할 수 있습니다.