Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어에서 배열의 개별 요소를 함수 인수로 전달하는 방법

개요

C 언어에서 배열의 개별 요소를 함수의 인수(argument)로 전달하려면, 함수를 호출할 때 배열 이름 전체가 아니라 첨자(subscript)가 붙은 배열 요소(예: a[0], a[4])를 직접 지정해야 합니다.

반대로 호출된 함수 쪽에서는 전달된 값을 받기 위해 일반(단순) 변수를 사용합니다. 즉, 함수 정의부의 매개변수는 배열 형태가 아닌 int형 단순 변수로 선언됩니다.

예제 1: 첫 번째 요소와 마지막 요소 전달하기

다음 예제는 크기가 5인 배열을 선언하고, 사용자로부터 5개의 값을 입력받은 뒤 첫 번째 요소(a[0])와 마지막 요소(a[4])만 display() 함수에 개별 인수로 전달하는 프로그램입니다.

#include<stdio.h>
main (){
    void display (int, int);
    int a[5], i;
    clrscr();
    printf ("enter 5 elements");
    for (i=0; i<5; i++)
       scanf("%d", &a[i]);
    display (a[0], a[4]); // 개별 인수를 사용하여 함수 호출
    getch();
}
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: 여섯 개 요소 중 첫 요소와 마지막 요소 전달하기

아래 예제는 크기가 10인 배열에 6개의 값을 입력받은 후, a[0]과 a[5]를 arguments() 함수에 개별적으로 전달하는 또 다른 사례입니다.

#include<stdio.h>
main (){
    void arguments(int,int);
    int a[10], i;
    printf ("enter 6 elements:\n");
    for (i=0; i<6; i++)
       scanf("%d", &a[i]);
    arguments(a[0], a[5]); // 개별 인수를 사용하여 함수 호출
    getch();
}
void arguments(int a, int b){ // 개별 인수를 받는 호출된 함수
    printf ("first element = %d\n", a);
    printf ("last element = %d\n", b);
}

실행 결과

enter 6 elements:
1
2
3
4
5
6
first element = 1
last element = 6

핵심 정리

함수 호출 시: 배열명이 아니라 첨자가 붙은 개별 요소(예: a[0], a[4])를 인수로 사용합니다.
함수 정의 시: 전달받은 값을 저장하기 위해 단순 변수(int a, int b)를 매개변수로 선언합니다.
참고: 이 방식은 값에 의한 호출(call by value)에 해당하므로, 함수 내부에서 매개변수 값을 변경하더라도 원본 배열의 값은 영향을 받지 않습니다.