C언어 2차원 배열

코딩C언어
읽는데 6분 소요
처음 쓰여진 날: 2026-02-06
마지막 수정일: 2026-03-21
조회수: 896

요약

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]arr[2]
행 이름각 행의 시작 주소arr[0], arr[1]

2차원 배열이란? 쌩기초

1차원 배열이 값을 한 줄로 나열한다면, 2차원 배열은 행(row)과 열(column)으로 구성된 표 형태의 배열입니다.

c
코드 하이라이팅 중...

이 코드는 3행 3열의 2차원 배열을 만들고 1부터 9까지 초기화합니다.


행과 열 쌩기초

2차원 배열에서 (row)은 가로줄, (column)은 세로줄입니다.

2차원 배열의 행과 열
행(row)은 가로, 열(column)은 세로예요. arr[행][열] 순서로 접근합니다.
용어방향예시
행 (row)가로 →arr[0]은 0행 전체 (1, 2, 3)
열 (column)세로 ↓열 1은 각 행의 두 번째 값 (2, 5, 8)
c
코드 하이라이팅 중...
열 0열 1열 2
0행123
1행456
2행789

2차원 배열 선언 쌩기초

c
코드 하이라이팅 중...
c
코드 하이라이팅 중...

2차원 배열 초기화 기초

한 줄로 초기화

c
코드 하이라이팅 중...
열 0열 1열 2
arr[0]123
arr[1]456

값은 행 순서대로 채워집니다. 먼저 0행을 채우고, 다음 1행을 채웁니다.

행별로 초기화

c
코드 하이라이팅 중...

중괄호로 행을 구분하면 가독성이 좋아집니다.



2차원 배열 접근 기초

arr[행][열] 형태로 접근합니다. 인덱스는 0부터 시작합니다.

c
코드 하이라이팅 중...

실기 시험에서는 2차원 배열을 for문으로 순회하는 문제가 자주 출제됩니다. 바깥 for문이 행, 안쪽 for문이 열을 담당하는 패턴을 기억하세요.


메모리 구조 기초

2차원 배열은 화면에서는 표처럼 보이지만, 실제 메모리에는 한 줄로 쭉 이어져서 저장됩니다. 0행의 값들이 먼저 저장되고, 바로 이어서 1행, 2행 순서로 저장됩니다.

2차원 배열 메모리 구조
2차원 배열은 메모리에 행 단위로 연속 저장됩니다. arr[0], arr[1], arr[2]는 각 행의 시작 주소예요.
c
코드 하이라이팅 중...

메모리에는 다음과 같이 저장됩니다:

text
코드 하이라이팅 중...

arr[0]의 값 3개가 먼저 오고, 바로 다음 주소에 arr[1]의 값 3개, 그 다음에 arr[2]의 값 3개가 이어집니다. 이렇게 행 순서대로 연속 저장되기 때문에 한 줄로 초기화할 때 값이 행 순서대로 채워지는 것입니다.



행 이름은 주소다 심화

1차원 배열에서 배열 이름이 주소인 것처럼, 2차원 배열의 행 이름도 주소입니다. arr[0]이라고 쓰면 0행에 저장된 값이 아니라, 0행이 시작되는 메모리 주소를 가리킵니다.

c
코드 하이라이팅 중...
표현의미
arr2차원 배열 전체의 시작 주소
arr[0]0행의 시작 주소
arr[1]1행의 시작 주소
arr[0][0]0행 0열의 값 (주소가 아니라 실제 정수값)

포인터 타입이 궁금하다면 포인터 페이지에서 자세히 다룹니다.


2차원 배열과 포인터 심화

포인터를 아직 배우지 않았다면 이 섹션은 건너뛰어도 괜찮습니다. 포인터를 배운 뒤에 돌아오면 됩니다.

2차원 배열의 행 주소를 포인터 배열에 저장하면, 포인터를 통해 2차원 배열에 접근할 수 있습니다. int *parr[2]int 포인터 2개를 담는 배열입니다.

c
코드 하이라이팅 중...

자세한 내용은 포인터 배열을 참고하세요.


정보처리기사 실기 대비 문제

관련 글

(34개)
제목태그시험
C언어 구조체 배열
C언어
-
C언어 구조체 포인터
C언어
-
C언어 함수 프로토타입
C언어
-