배열(Array)은 하나의 변수 이름 아래에 동일한 자료형의 데이터 항목들을 순차적으로 저장하는 자료 구조입니다.
예를 들어, 다음과 같이 선언할 수 있습니다.
int student[30];
위 코드에서 student는 배열 이름이며, 단 하나의 변수 이름으로 30개의 데이터 항목을 담을 수 있습니다.
배열의 특징
C언어에서 배열이 가지는 주요 특징은 다음과 같습니다.
- 배열은 항상 연속된 메모리 공간에 저장됩니다.
- 같은 자료형의 여러 값을 저장할 수 있으며, 하나의 이름으로 참조할 수 있습니다.
- 포인터는 배열 이름에 할당된 메모리 블록의 첫 번째 위치를 가리킵니다.
- 배열은 정수(int), 문자(char), 실수(float) 등의 자료형을 가질 수 있으며, 선언 시에만 초기화할 수 있습니다.
- 배열의 특정 요소는 다른 요소들에 영향을 주지 않고 개별적으로 수정할 수 있습니다.
- 모든 배열 요소는 인덱스 번호를 통해 서로 구분됩니다.
배열의 주요 연산
배열에서 수행할 수 있는 대표적인 연산은 다음과 같습니다.
- 탐색(Searching) — 배열 안에 특정 요소가 존재하는지 확인하는 연산입니다.
- 정렬(Sorting) — 배열의 요소들을 오름차순 또는 내림차순으로 정렬하는 연산입니다.
- 순회(Traversing) — 배열의 모든 요소를 순서대로 처리하는 연산입니다.
- 삽입(Inserting) — 배열에 새로운 요소를 추가하는 연산입니다.
- 삭제(Deleting) — 배열에서 기존 요소를 제거하는 연산입니다.
예제 프로그램
다음은 배열에서 특정 요소를 탐색하는 C 프로그램입니다.
#include <stdio.h>
#define MAX 100 // 최대 배열 크기
int main(){
int array[MAX];
int size, i, search, found;
printf("Enter size of array: ");
scanf("%d", &size);
printf("Enter elements in array: ");
for(i=0; i<size; i++){
scanf("%d", &array[i]);
}
printf("\nEnter element to search: ");
scanf("%d", &search);
found = 0;
for(i=0; i<size; i++){
if(array[i] == search){
found = 1;
break;
}
}
if(found == 1){
printf("\n%d is found at position %d", search, i + 1);
} else {
printf("\n%d is not found in the array", search);
}
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Enter size of array: 5 Enter elements in array: 11 24 13 12 45 Enter element to search: 13 13 found at position 3
이 프로그램은 사용자로부터 배열의 크기와 요소들을 입력받은 후, 찾고자 하는 값이 배열에 있는지 선형 탐색(Linear Search) 방식으로 확인합니다. 값이 발견되면 해당 위치를 출력하고, 없으면 "찾을 수 없다"는 메시지를 출력합니다.