프로그래밍을 배우다 보면, 같은 성격의 데이터를 여러 개 다루어야 할 때가 많습니다. 예를 들어, 30명의 학생 성적을 저장한다고 할 때, 변수를 30개 선언하는 것은 비효율적이겠죠. 이때 필요한 것이 바로 **배열(Array)**입니다.
오늘은 C언어에서 배열이란 무엇인지, 1차원 배열과 2차원 배열의 개념, 그리고 실무에서 자주 쓰이는 활용법을 예제 중심으로 정리해 드리겠습니다.
✅ 배열이란 무엇인가?
배열은 같은 자료형의 데이터를 연속적으로 저장하는 집합입니다.
쉽게 말해, 책장이 여러 칸으로 나뉘어 있고 각 칸에 같은 종류의 책을 넣는 구조와 비슷합니다.
배열을 사용하는 이유
- 여러 데이터를 효율적으로 관리할 수 있음
- 반복문과 함께 사용하면 대량의 데이터를 쉽게 처리
- 메모리를 연속적으로 사용해 접근 속도가 빠름
✅ 1차원 배열 기초
1차원 배열은 가장 기본적인 형태로, 하나의 줄(line)로 나열된 데이터 모음입니다.
배열 선언 방법
자료형 배열이름[크기];
예시:
int scores[5]; // 정수형 데이터를 5개 저장할 수 있는 배열
배열 초기화
int scores[5] = {90, 80, 70, 60, 50};
👉 위 예제에서 scores[0]
은 90, scores[4]
는 50을 의미합니다. (인덱스는 0부터 시작)
예제: 학생 점수 출력하기
#include <stdio.h>
int main() {
int scores[5] = {90, 85, 70, 60, 95};
for (int i = 0; i < 5; i++) {
printf("학생 %d 점수: %d\n", i+1, scores[i]);
}
return 0;
}
👉 실행 결과
학생 1 점수: 90
학생 2 점수: 85
학생 3 점수: 70
학생 4 점수: 60
학생 5 점수: 95
✅ 2차원 배열 이해하기
2차원 배열은 말 그대로 **행(Row)과 열(Column)**로 구성된 데이터 집합입니다.
예를 들어, 표(Table)나 행렬(Matrix)을 표현할 때 사용합니다.
2차원 배열 선언 방법
자료형 배열이름[행][열];
예시:
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
예제: 3×3 행렬 출력하기
#include <stdio.h>
int main() {
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
👉 실행 결과
1 2 3
4 5 6
7 8 9
✅ 배열과 반복문 활용
배열은 반복문과 함께 사용할 때 진가를 발휘합니다.
예제: 배열 값의 합 구하기
#include <stdio.h>
int main() {
int scores[5] = {90, 85, 70, 60, 95};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += scores[i];
}
printf("총합: %d\n", sum);
return 0;
}
👉 실행 결과
총합: 400
✅ 문자열과 배열
C언어에서 문자열은 사실상 **문자 배열(char 배열)**입니다.
char name[10] = "Tom";
printf("이름: %s\n", name);
👉 실행 결과
이름: Tom
여기서 중요한 점은, 문자열 끝에는 반드시 **널 문자(‘\0’)**가 자동으로 들어가야 한다는 것입니다.
✅ 배열 사용 시 주의할 점
- 인덱스 범위 초과 금지
int arr[5];
선언 후arr[5]
에 접근하면 오류 발생 (마지막 인덱스는 4)
- 초기화 누락 주의
- 초기화하지 않은 배열의 값은 쓰레기 값이 들어갈 수 있음
- 메모리 효율성 고려
- 너무 큰 배열은 스택 메모리를 초과할 수 있으므로, 동적 메모리 할당을 고려해야 함
✅ for vs while과 배열
배열은 반복문과 함께 쓰이는 경우가 많습니다.
- for문 : 배열 전체 탐색
- while문 : 조건에 따라 배열 일부만 탐색
- do-while문 : 최소 1번 실행되는 배열 입력 처리
✅ 오늘 내용 요약
- 배열은 같은 자료형 데이터를 연속적으로 저장하는 공간
- 1차원 배열: 인덱스를 이용해 순차적 접근 가능
- 2차원 배열: 표나 행렬 표현 가능
- 배열과 반복문을 함께 쓰면 강력한 데이터 처리 가능
- 문자열은 사실상 문자 배열로 동작
👉 배열은 C언어에서 조건문, 반복문, 함수와 함께 반드시 마스터해야 할 핵심 개념입니다