함수는 어떤 값을 입력받아 처리할 수 있습니다. 이때 함수로 전달되는 값을 매개변수(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 함수에서 같은 이름의 변수가 있어도 서로 영향을 주지 않습니다.
'프로그래밍언어 > C언어[초급]' 카테고리의 다른 글
[C언어][초급] Chapter37. 지역 변수와 전역 변수 – 변수의 범위와 수명 이해하기 (0) | 2025.04.18 |
---|---|
[C언어][초급] Chapter36. 함수의 반환값 – 함수가 결과를 되돌려주는 방법 (2) | 2025.04.18 |
[C언어][초급] Chapter34. 함수 호출 방법 – 정의한 함수를 실행하는 정확한 방식 (0) | 2025.04.18 |
[C언어][초급] Chapter33. 함수 정의 방법 – 반복되는 코드를 깔끔하게 정리하는 법 (0) | 2025.04.18 |
[C언어][초급] Chapter32. 중첩 반복문 – 반복문 안에 반복문을 넣어 사용하는 방법 (0) | 2025.04.18 |