배열(array)은 서로 관련된 항목들을 하나의 공통된 이름으로 저장하는 자료구조입니다.
배열 선언
배열을 선언할 때 사용하는 기본 문법은 다음과 같습니다.
datatype array_name [size];
배열 초기화
배열은 크게 두 가지 방법으로 초기화할 수 있습니다.
- 컴파일 타임(compile time) 초기화
- 런타임(runtime) 초기화
또한, 다음과 같이 선언과 동시에 초기화하는 것도 가능합니다.
int a[5] = {100,200,300,400,500};함수란?
함수(function)는 특정하고 명확하게 정의된 작업을 수행하는 독립적인 코드 블록입니다. C 언어에서 배열을 함수의 인수로 전달하는 방법에는 두 가지가 있습니다.
- 배열 전체를 하나의 인수로 함수에 전달하는 방법
- 배열의 개별 요소를 인수로 함수에 전달하는 방법
이번 글에서는 그중 개별 요소를 인수로 전달하는 방법에 대해 자세히 알아보겠습니다.
개별 요소를 인수로 전달하기
배열의 개별 요소를 함수의 인수로 전달할 때는 다음 두 가지 사항을 기억해야 합니다.
- 개별 요소를 인수로 넘기려면, 함수를 호출할 때 첨자(subscript)를 포함한 배열 요소를 직접 지정해야 합니다. 예를 들어
a[0],a[4]처럼 작성합니다. - 전달받은 요소를 저장하기 위해서는 함수 정의 쪽에서 일반 변수를 사용합니다.
예제 1: 첫 번째와 마지막 요소 전달하기
다음 프로그램을 참고해 보세요.
#include<stdio.h>
main ( ){
void display (int, int);
int a[5], i;
printf ("enter 5 elements");
for (i=0; i<5; i++)
scanf("%d", &a[i]);
display (a [0], a[4]); // 배열 이름과 첨자로 개별 요소 전달
}
void display (int a, int b){ // 일반 변수로 개별 요소 수신
printf ("first element = %d",a);
printf ("last element = %d",b);
}실행 결과
위 프로그램을 컴파일하고 실행하면 다음과 같은 결과가 출력됩니다.
Enter 5 elements 10 20 30 40 50 First element = 10 Last element = 50
예제 2: 여러 위치의 요소 전달하기
이번에는 세 개의 개별 요소를 동시에 전달하는 예제입니다.
#include<stdio.h>
main ( ){
void display (int,int,int);
int a[6], i;
printf ("enter 5 elements");
for (i=0; i<6; i++)
scanf("%d", &a[i]);
display (a[0],a[2],a[5]); // 배열 이름과 첨자로 개별 요소 전달
}
void display (int a, int b,int c){// 일반 변수로 개별 요소 수신
printf ("first element = %d\n",a);
printf ("middle element = %d\n",b);
printf("last element = %d",c);
}실행 결과
위 프로그램을 컴파일하고 실행하면 다음과 같은 결과가 출력됩니다.
enter 5 elements 10 20 30 40 50 60 first element = 10 middle element = 30 last element = 60
정리
C 언어에서 배열의 개별 요소를 함수로 전달하는 것은 매우 간단합니다. 함수 호출 시 배열명[첨자] 형태로 원하는 요소를 지정하면 되고, 함수 정의에서는 해당 값을 받을 일반 변수를 선언해 주면 됩니다. 이 방식은 배열 전체가 아닌 필요한 값만 전달하므로, 특정 요소만 처리하고 싶을 때 유용하게 활용할 수 있습니다.