C 기본 문법 – 배열 – 0편: 1차원 배열 완전 정복
안녕하세요, 코딩 여정을 함께하고 있는 여러분 😊
오늘부터는 자료를 모아두고 효율적으로 관리하는 멋진 도구!
바로 **배열(array)**에 대해 배워볼 거예요!
그 중에서도 이번 편에서는 가장 기본이 되는 1차원 배열을 집중적으로 파헤쳐보겠습니다.
🧠 배열이란 마치 “서랍장” 같아요.
서랍을 하나씩 번호(index)를 붙여놓고, 그 안에 값을 넣어두면
필요할 때 쉽게 찾아서 꺼내 쓸 수 있는 구조랍니다!
지금부터 배열의 개념, 선언 방법, 활용법, 주의점까지
예제와 함께 친근하고 쉽게 설명드릴게요! 😄
배열이란?
같은 타입의 변수들을 연속된 메모리 공간에 저장하는 자료구조입니다.
- 정수 여러 개, 실수 여러 개, 문자 여러 개 등을 한 번에 저장 가능!
- 각 요소는 인덱스(index)를 통해 접근합니다.
- 인덱스는 항상 0부터 시작합니다.
1. 1차원 배열 선언과 초기화
선언 방법
자료형 배열이름[크기];
예시:
int scores[5]; // 정수 5개 저장 공간
🎯 이건 “5칸짜리 정수형 서랍장”을 만든 거예요.
선언과 동시에 초기화
int scores[5] = {90, 80, 70, 60, 50};
각 인덱스에 차례대로 값이 들어가요:
- scores[0] = 90
- scores[1] = 80
- scores[2] = 70
- scores[3] = 60
- scores[4] = 50
크기를 생략하고 초기화
int scores[] = {100, 90, 80};
초기값의 개수에 따라 자동으로 크기가 결정돼요. 이 경우
scores[3]
까지!
2. 배열 요소 접근하기
배열의 각 값은 인덱스를 이용해 접근합니다.
printf("%d
", scores[2]); // 3번째 값 출력
배열에 값 넣기
scores[0] = 95;
scores[4] = 70;
📌 인덱스를 통해 값을 수정할 수도 있어요!
3. 배열과 반복문은 천생연분!
예제: 배열 출력
for (int i = 0; i < 5; i++) {
printf("scores[%d] = %d
", i, scores[i]);
}
🎯 for문과 배열은 짝꿍이에요!
데이터를 일괄적으로 처리할 때 매우 편리하답니다.
4. 배열의 총합과 평균 구하기
int scores[5] = {85, 90, 78, 92, 88};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += scores[i];
}
float avg = sum / 5.0;
printf("총합: %d, 평균: %.2f
", sum, avg);
💡 실전에서 자주 쓰이는 패턴이에요!
5. 배열 초기화의 다양한 형태
전부 0으로 초기화
int data[10] = {0}; // 나머지는 자동으로 0
특정 값 반복 입력은 반복문 사용!
for (int i = 0; i < 10; i++) {
data[i] = 7; // 모든 요소를 7로 채움
}
6. 문자 배열 (문자열)
문자도 배열로 저장 가능해요.
이때는'문자'
가 아닌"문자열"
을 사용합니다.
char name[6] = "Hello"; // 마지막에 \0(널 문자) 자동 포함
char name[6] = {'H', 'e', 'l', 'l', 'o', '\0'}
와 동일!
7. 배열 크기 상수화
배열의 크기를 상수로 정의하면 유지보수가 쉬워요!
#define SIZE 5
int scores[SIZE];
🎯 크기를 바꾸고 싶을 땐
#define
만 수정하면 되죠!
8. 배열과 scanf 사용하기
사용자에게 입력받아 배열에 저장할 수 있어요!
int arr[5];
for (int i = 0; i < 5; i++) {
printf("%d번째 정수 입력: ", i+1);
scanf("%d", &arr[i]);
}
✅ 1차원 배열 요약 정리
항목 | 설명 |
---|---|
선언 방법 | int arr[5]; |
인덱스 범위 | 0 ~ (크기 – 1) |
초기화 방법 | {값1, 값2, ...} |
반복문과 사용 | for 와 함께 일괄 처리 |
배열과 함수 | 배열은 포인터로 전달됨 (심화에서 다룸) |
⚠️ 1차원 배열 사용 시 주의할 점
주의사항 | 설명 |
---|---|
인덱스 범위 초과 금지 | arr[5] 처럼 범위를 벗어나면 메모리 오류 발생 |
초기화 개수 mismatch 주의 | {10, 20} 인데 크기는 [5] 이면 나머지는 0 |
배열 크기 유동적 변경 불가 | C에서는 런타임 배열 크기 조절이 불가 (고정 크기) |
문자열은 ‘\0’ 필요 | 마지막에 널 문자가 있어야 문자열로 인식 가능 |
마무리하며 💬
1차원 배열은 많은 데이터를 다루기 위한 가장 기본적인 도구입니다.
실전에서 수많은 상황에서 등장하는 만큼,
반복문과 함께 자유자재로 활용할 수 있어야 한 단계 업그레이드 된 개발자가 될 수 있어요!
🎯 “변수는 한 개, 배열은 백 명을 위한 단체방!”
반복적 데이터는 배열로 정리해서 스마트하게 관리해보세요!
다음 시간에는 2차원 배열을 통해 표 형식의 데이터도
쉽게 다룰 수 있는 방법을 배워보겠습니다 😄
오늘도 끝까지 함께해주셔서 감사합니다!
꾸준함이 곧 실력입니다 💻✨