본문 바로가기
프로그래밍언어/C언어[초급]

[C언어][초급] Chapter35. 함수의 매개변수 – 함수에 값을 전달하는 방법 정리

by about_IT 2025. 4. 18.

함수는 어떤 값을 입력받아 처리할 수 있습니다. 이때 함수로 전달되는 값을 매개변수(parameter)라고 부릅니다.

매개변수를 사용하면 입력에 따라 결과가 달라지는 유연한 함수를 만들 수 있습니다.
같은 함수를 여러 상황에 맞게 사용할 수 있다는 점이 큰 장점입니다.


● 매개변수가 있는 함수 정의

void print_number(int n) {
    printf("입력한 수: %d\n", n);
}

매개변수는 괄호 안에 작성하며, 자료형 + 변수이름 형식으로 선언합니다.


● 함수 호출 시 값 전달

int main(void) {
    print_number(42);  // 42가 n에 전달됨
    return 0;
}

호출할 때 괄호 안에 값을 넣으면, 그 값이 매개변수로 전달됩니다.


● 매개변수가 여러 개인 경우

void add(int a, int b) {
    printf("합계: %d\n", a + b);
}

int main(void) {
    add(3, 5); // a=3, b=5
    return 0;
}

쉼표(,)로 구분하여 여러 개의 값을 전달할 수 있습니다.


● 매개변수는 지역 변수

매개변수는 함수 내부에서만 사용 가능한 지역 변수입니다.
함수가 끝나면 해당 변수는 소멸되고, 외부 변수와 이름이 같아도 별개로 취급됩니다.


매개변수는 함수의 동작을 다양화하고 유연하게 만들어줍니다.
함수의 입력값을 다룰 수 있어야 더 복잡한 로직을 구현할 수 있습니다.

지금부터 다양한 매개변수를 사용하는 함수를 연습해보세요!


● 실습 문제

문제 1

정수 하나를 매개변수로 받아 출력하는 print_number 함수를 작성하고 호출하세요.

 

문제 2

두 개의 정수를 받아 둘의 합을 출력하는 add 함수를 작성하세요.

 

문제 3

문자형 매개변수를 받아 해당 문자를 출력하는 print_char 함수를 작성하세요.

 

문제 4

두 개의 실수를 받아 평균을 계산하는 함수 avg를 작성하고 결과를 출력하세요.

 

문제 5

함수 내부의 매개변수와 main 함수의 변수 이름이 같을 때 어떤 일이 일어나는지 설명해보세요.

 









▶ 정답 확인하기

정답 1

void print_number(int n) {
    printf("입력한 수: %d\n", n);
}

int main(void) {
    print_number(10);
    return 0;
}

 

정답 2

void add(int a, int b) {
    printf("합계: %d\n", a + b);
}

int main(void) {
    add(7, 8);
    return 0;
}

 

정답 3

void print_char(char ch) {
    printf("입력한 문자: %c\n", ch);
}

int main(void) {
    print_char('A');
    return 0;
}

 

정답 4

float avg(float a, float b) {
    return (a + b) / 2;
}

int main(void) {
    float result = avg(3.5, 4.5);
    printf("평균: %.2f\n", result);
    return 0;
}

 

정답 5

함수의 매개변수는 함수 내부에서만 유효한 지역 변수입니다.
main 함수에서 같은 이름의 변수가 있어도 서로 영향을 주지 않습니다.