C언어 초급 - 8장: 배열과 문자열 (8.1 배열의 개념)
2025. 2. 23. 19:11ㆍ프로그래밍 언어/C
8.1 배열의 개념
C 언어에서 배열(Array) 은 같은 자료형의 여러 개의 데이터를 하나의 변수에 저장하는 자료구조입니다.
배열을 사용하면 반복문과 함께 효율적으로 데이터를 관리할 수 있으며, 메모리에서 연속적으로 저장되는 구조를 가집니다.
1. 1차원 배열의 선언 및 초기화
1.1 배열 선언
배열을 선언하는 기본 문법은 다음과 같습니다.
자료형 배열이름[배열크기];
📌 배열의 크기(배열크기)는 반드시 정수여야 하며, 선언 후 크기를 변경할 수 없음.
1.2 배열 선언 예제
#include <stdio.h>
int main() {
int numbers[5]; // 정수형 배열 선언 (5개의 요소 저장 가능)
return 0;
}
📌 설명
- int numbers[5]; → 크기가 5인 정수형 배열 선언.
- 배열의 요소 개수는 5개이며, 각각 numbers[0] ~ numbers[4]로 접근 가능.
1.3 배열 초기화
배열 선언과 동시에 초기값을 설정할 수 있습니다.
int numbers[5] = {10, 20, 30, 40, 50}; // 초기값 설정
📌 초기화하지 않으면 배열 요소에는 쓰레기 값(알 수 없는 값)이 저장됨.
1.4 배열 초기화 방법
#include <stdio.h>
int main() {
int numbers1[5] = {10, 20, 30, 40, 50}; // 모든 요소를 초기화
int numbers2[5] = {1, 2}; // 앞 2개만 초기화하고 나머지는 0
int numbers3[5] = {0}; // 모든 요소를 0으로 초기화
int numbers4[] = {10, 20, 30}; // 크기 자동 설정 (3개)
printf("numbers1[2] = %d\n", numbers1[2]); // 30 출력
printf("numbers2[4] = %d\n", numbers2[4]); // 0 출력
printf("numbers3[3] = %d\n", numbers3[3]); // 0 출력
printf("numbers4[1] = %d\n", numbers4[1]); // 20 출력
return 0;
}
출력 결과
numbers1[2] = 30
numbers2[4] = 0
numbers3[3] = 0
numbers4[1] = 20
📌 배열 크기를 생략하면 자동으로 크기 결정 (numbers4[])
📌 초기화되지 않은 요소는 0 또는 쓰레기 값(미정의 값)을 가질 수 있음
2. 배열의 메모리 구조
배열의 요소는 연속적인 메모리 주소에 저장됩니다.
따라서 배열의 첫 번째 요소의 주소를 기준으로, 다음 요소들은 자료형 크기만큼 주소가 증가합니다.
2.1 배열의 메모리 구조 예제
#include <stdio.h>
int main() {
int arr[5] = {10, 20, 30, 40, 50};
printf("배열의 메모리 주소 확인\n");
for (int i = 0; i < 5; i++) {
printf("&arr[%d] = %p\n", i, &arr[i]);
}
return 0;
}
출력 예시
배열의 메모리 주소 확인
&arr[0] = 0x7ffee3b3d9c0
&arr[1] = 0x7ffee3b3d9c4
&arr[2] = 0x7ffee3b3d9c8
&arr[3] = 0x7ffee3b3d9cc
&arr[4] = 0x7ffee3b3d9d0
📌 설명
- int 자료형은 보통 4바이트를 차지함.
- 각 배열 요소의 메모리 주소는 4씩 증가.
- &arr[0]을 보면 배열의 첫 번째 요소가 저장된 주소를 확인 가능.
2.2 배열을 이용한 데이터 처리
배열을 활용하여 여러 데이터를 손쉽게 처리할 수 있습니다.
예제 – 배열을 사용한 평균 계산
#include <stdio.h>
int main() {
int scores[5] = {80, 90, 78, 92, 88}; // 학생 5명의 점수
int sum = 0;
double avg;
for (int i = 0; i < 5; i++) {
sum += scores[i]; // 총합 계산
}
avg = (double)sum / 5; // 평균 계산
printf("평균 점수: %.2f\n", avg);
return 0;
}
출력 결과
평균 점수: 85.60
📌 설명
- 배열을 사용하면 반복문을 활용하여 데이터 처리가 쉬워짐.
- sum += scores[i]; → 반복문을 사용하여 총합을 구함.
- (double)sum / 5; → 정수형 sum을 double로 변환하여 정확한 평균 계산.
3. 배열과 반복문
배열은 반복문과 함께 사용하면 효율적인 데이터 처리가 가능합니다.
3.1 사용자 입력을 통한 배열 값 설정
#include <stdio.h>
int main() {
int values[5];
printf("5개의 정수를 입력하세요: ");
for (int i = 0; i < 5; i++) {
scanf("%d", &values[i]);
}
printf("입력한 값 출력: ");
for (int i = 0; i < 5; i++) {
printf("%d ", values[i]);
}
return 0;
}
실행 예시
5개의 정수를 입력하세요: 1 2 3 4 5
입력한 값 출력: 1 2 3 4 5
📌 설명
- 배열을 사용하여 사용자로부터 여러 개의 값을 입력받고 출력할 수 있음.
- 반복문을 활용하면 scanf와 printf를 반복적으로 호출할 필요 없음.
4. 정리
개념 | 설명 | 예제 |
배열 선언 | 같은 자료형의 여러 개의 데이터를 저장 | int arr[5]; |
배열 초기화 | 배열을 선언하면서 초기값 설정 | int arr[5] = {1, 2, 3, 4, 5}; |
크기 생략 초기화 | 배열 크기를 자동으로 설정 | int arr[] = {10, 20, 30}; |
메모리 구조 | 배열 요소는 연속적인 메모리 주소에 저장 | &arr[i] |
반복문 활용 | 배열의 요소를 반복문으로 처리 | for (int i = 0; i < 5; i++) |
📌 배열은 같은 자료형의 여러 데이터를 연속적으로 저장
📌 배열의 크기는 선언 후 변경 불가능
📌 배열 요소는 0번 인덱스부터 시작
📌 반복문과 함께 사용하면 데이터를 쉽게 처리 가능
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 초급 - 8장: 배열과 문자열 (8.3 문자열 (char 배열)) (0) | 2025.02.23 |
---|---|
C언어 초급 - 8장: 배열과 문자열 (8.2 다차원 배열) (0) | 2025.02.23 |
C언어 초급 - 7장: 반복문 (7.4 반복문의 제어 (break, continue)) (0) | 2025.02.23 |
C언어 초급 - 7장: 반복문 (7.3 for 문) (0) | 2025.02.23 |
C언어 초급 - 7장: 반복문 (7.2 do-while 문) (0) | 2025.02.23 |