배열(Array)이란?
배열은 하나의 공통된 이름 아래 서로 연관된 데이터 항목들을 모아 놓은 집합입니다. 배열 안에서 특정 값을 찾으려면 "인덱스 번호(index)" 또는 "첨자(subscript)"를 사용합니다.
배열의 가장 큰 장점은 다음과 같습니다.
- 하나의 이름만으로 여러 항목의 집합을 표현할 수 있고, 항목 번호를 지정해 개별 항목에 접근할 수 있기 때문에 간결하고 효율적인 프로그램 작성이 가능합니다.
배열 선언 방법
C 언어에서 배열을 선언하는 기본 문법은 다음과 같습니다.
datatype array_name [size];예시 1)
float height[50];위 코드는 실수형(float) 요소 50개를 저장할 수 있는 'height' 배열을 선언합니다.
예시 2)
int group[10];위 코드는 정수형(int) 상수를 최대 10개까지 담을 수 있는 'group' 배열을 선언합니다.
배열 요소에 접근하기
배열 전체는 하나의 자료 구조로 취급되지만, 그 안의 개별 값들은 "요소(element)"라고 부르며 각 요소는 배열 첨자(인덱스)로 구분합니다. C 언어에서 인덱스는 0부터 시작한다는 점을 꼭 기억하세요. 예를 들어 크기가 5인 배열의 유효한 인덱스 범위는 0부터 4까지입니다.
배열 인덱스를 사용하면 특정 요소에 손쉽게 접근하여 값을 저장하거나 읽어올 수 있습니다.
예제 프로그램
다음은 C 언어에서 배열 요소에 접근하는 방법을 보여주는 예제 코드입니다.
#include<stdio.h>
int main(){
int array[5], i;
array[3] = 12;
array[1] = 35;
array[0] = 46;
printf("Array elements are: ");
for(i = 0; i < 5; i++){
printf("%d ", array[i]);
}
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Array elements are: 46 35 38 12 9704368출력 결과를 보면 array[0], array[1], array[3]에는 각각 46, 35, 12가 저장되어 정상적으로 출력됩니다. 반면 array[2]와 array[4]에는 값을 저장하지 않았기 때문에 해당 메모리 위치에 남아 있던 쓰레기값(garbage value)이 그대로 출력됩니다.
따라서 배열을 사용할 때는 초기화하지 않은 요소를 읽지 않도록 주의해야 합니다. 안전한 코드를 위해 선언과 동시에 int array[5] = {0};처럼 배열을 초기화하는 습관을 들이는 것이 좋습니다.