C언어 2차원 배열
코딩C언어
읽는데 4분 소요
처음 쓰여진 날: 2026-02-06
마지막 수정일: 2026-02-06
조회수: 3
요약
C언어 2차원 배열의 선언, 초기화, 메모리 구조를 알아봅니다. 정보처리기사 실기에 자주 출제되는 2차원 배열 문제를 풀기 위한 핵심 개념을 정리합니다.
2차원 배열 핵심 정리
| 개념 | 설명 | 예시 |
|---|---|---|
| 선언 | 행과 열 크기 지정 | int arr[3][4]; |
| 초기화 | 중괄호로 값 할당 | int arr[2][3] = {1,2,3,4,5,6}; |
| 접근 | arr[행][열]로 접근 | arr[0][1] |
| 행 이름 | 각 행의 시작 주소 | arr[0], arr[1] |
2차원 배열이란?
2차원 배열은 행(row)과 열(column)로 구성된 표 형태의 배열입니다.
c
코드 하이라이팅 중...
이 코드는 3행 3열의 2차원 배열을 만들고 1부터 9까지 초기화합니다.
행과 열
2차원 배열에서 행(row) 은 가로줄, 열(column) 은 세로줄입니다.

| 용어 | 방향 | 예시 |
|---|---|---|
| 행 (row) | 가로 → | arr[0]은 0행 전체 (1, 2, 3) |
| 열 (column) | 세로 ↓ | 열 1은 각 행의 두 번째 값 (2, 5, 8) |
c
코드 하이라이팅 중...
| 열 0 | 열 1 | 열 2 | |
|---|---|---|---|
| 0행 | 1 | 2 | 3 |
| 1행 | 4 | 5 | 6 |
| 2행 | 7 | 8 | 9 |
2차원 배열 선언
c
코드 하이라이팅 중...
c
코드 하이라이팅 중...
2차원 배열 초기화
한 줄로 초기화
c
코드 하이라이팅 중...
| 열 0 | 열 1 | 열 2 | |
|---|---|---|---|
| arr[0] | 1 | 2 | 3 |
| arr[1] | 4 | 5 | 6 |
값은 행 순서대로 채워집니다. 먼저 0행을 채우고, 다음 1행을 채웁니다.
행별로 초기화
c
코드 하이라이팅 중...
중괄호로 행을 구분하면 가독성이 좋아집니다.
2차원 배열 접근
arr[행][열] 형태로 접근합니다. 인덱스는 0부터 시작합니다.
c
코드 하이라이팅 중...
메모리 구조
2차원 배열은 메모리에 행 단위로 연속해서 저장됩니다.

c
코드 하이라이팅 중...
메모리에는 다음과 같이 저장됩니다:
text
코드 하이라이팅 중...
행 이름은 주소다
1차원 배열 이름이 주소인 것처럼, 2차원 배열의 행 이름도 주소입니다.
c
코드 하이라이팅 중...
| 표현 | 의미 | 타입 |
|---|---|---|
arr | 2차원 배열 전체의 시작 주소 | int (*)[3] |
arr[0] | 0행의 시작 주소 | int * |
arr[1] | 1행의 시작 주소 | int * |
arr[0][0] | 0행 0열의 값 | int |
int (*)[3], int * 등의 포인터 타입이 헷갈린다면 포인터 타입 이해하기를 참고하세요.
2차원 배열과 포인터
2차원 배열의 행 주소를 포인터 배열에 저장하면, 포인터를 통해 2차원 배열에 접근할 수 있습니다.
c
코드 하이라이팅 중...
자세한 내용은 포인터 배열을 참고하세요.