C 기본 문법 – 함수 – 1편: 매개변수와 반환 값 완전 정복
안녕하세요, 여러분! 😊
이전 시간에 이어서 오늘은 C 언어 함수의 핵심 요소인
**매개변수(Parameter)**와 **반환 값(Return Value)**에 대해 깊이 있게 알아볼게요.
🧠 함수란?
어떤 입력값을 받아서 → 어떤 작업을 하고 → 결과를 내놓는 구조!
마치 자동판매기처럼, 돈(입력)을 넣으면 음료(출력)가 나오는 것과 같아요!
그렇다면 이 입력과 출력, 즉 매개변수와 반환 값을 어떻게 정의하고 사용할 수 있을까요?
하나씩 비유와 예제로 쉽게 풀어드릴게요!
1. 매개변수란?
매개변수(Parameter)는 함수에 전달하는 입력값이에요.
함수를 호출할 때, 괄호 안에 값을 넣으면 그 값이 함수 안으로 전달돼요!
void greet(char name[]) {
printf("안녕하세요, %s님!
", name);
}
여기서 char name[]
이 매개변수입니다.
예시
int main() {
greet("민수");
return 0;
}
출력 결과:
안녕하세요, 민수님!
2. 반환 값이란?
반환 값(Return value)은 함수가 실행된 결과를 호출한 곳으로 전달하는 값이에요.
return
키워드를 통해 반환해줍니다.
int add(int a, int b) {
return a + b;
}
이 함수는 두 정수를 받아서, 더한 결과를 반환합니다.
예시
int result = add(3, 5); // result에 8 저장
3. 다양한 매개변수 예시
(1) 매개변수 1개
void printDouble(int x) {
printf("두 배: %d
", x * 2);
}
(2) 매개변수 2개
int multiply(int a, int b) {
return a * b;
}
(3) 매개변수 없이 실행
void hello() {
printf("안녕하세요!
");
}
💡
void
는 매개변수가 없다는 뜻이에요!
4. 반환 값이 있는 함수 vs 없는 함수
반환 타입 | 예시 | 설명 |
---|---|---|
int |
return 100; |
정수값 반환 |
char |
return 'A'; |
문자 반환 |
float |
return 3.14; |
실수 반환 |
void |
return; 또는 없음 |
반환값 없음 |
반환 값 없는 함수 (void)
void showTime() {
printf("현재 시각: 12:00
");
}
5. 함수 사용 예시: BMI 계산기
float getBMI(float weight, float height) {
return weight / (height * height);
}
int main() {
float bmi = getBMI(70.0, 1.75);
printf("당신의 BMI는 %.2f입니다.
", bmi);
return 0;
}
🎯 키와 몸무게를 매개변수로 받아서, BMI를 계산해 반환하는 구조예요.
6. 실전 예제: 최대값 찾기
int max(int a, int b) {
if (a > b) return a;
else return b;
}
int main() {
int m = max(10, 20);
printf("더 큰 값: %d
", m);
return 0;
}
입력값이 다를 때, 조건에 따라 반환값을 바꾸는 로직입니다.
7. return의 의미와 역할
- 함수의 실행을 종료함과 동시에
- 값을 호출한 곳으로 돌려줌
예시
int square(int n) {
return n * n;
printf("이 코드는 실행되지 않아요!"); // return 뒤라서 무시됨
}
8. 여러 매개변수와 반환값 없는 경우
예시: 계산기 메뉴 출력
void showMenu() {
printf("1. 덧셈
");
printf("2. 뺄셈
");
printf("3. 종료
");
}
반환값이 필요 없고 단지 화면에 뭔가를 보여주는 함수에 적합해요.
9. 함수를 통한 계산기 예시
int calculate(char op, int x, int y) {
if (op == '+') return x + y;
else if (op == '-') return x - y;
else return 0;
}
int main() {
printf("3 + 4 = %d
", calculate('+', 3, 4));
printf("10 - 2 = %d
", calculate('-', 10, 2));
return 0;
}
연산자와 숫자 두 개를 매개변수로 받아서 연산 후 결과를 반환하는 함수입니다.
✅ 매개변수와 반환 값 요약 정리
구분 | 설명 | 예시 |
---|---|---|
매개변수 | 함수에 전달되는 입력값 | int a, int b |
반환형 | 함수가 반환하는 값의 자료형 | int , float , void 등 |
return | 함수 실행 결과 반환 | return a + b; |
void 함수 | 반환값 없음 | void show() |
호출 방식 | 함수명(인자); |
add(3, 4); |
⚠️ 매개변수 & 반환값 관련 주의할 점
주의사항 | 설명 |
---|---|
자료형 일치 필수 | 전달 인자의 자료형과 함수 정의의 매개변수 자료형은 일치해야 함 |
반환형과 return 값 일치 | int 함수에서 float 반환하면 경고 발생 가능 |
return은 함수 중간에 종료 | return 아래 코드는 실행되지 않음 |
매개변수 개수 일치 | 선언과 호출 시 인자 개수가 달라지면 컴파일 오류 발생 |
마무리하며 💬
함수에서 매개변수와 반환 값은 마치 입력 단자와 출력 단자처럼
함수가 동작하는 데 없어서는 안 될 중요한 구성 요소예요!
🎯 입력을 받아, 가공해서, 결과를 출력하는 함수는
마치 우리가 주문한 피자를 구워서 배달해주는 시스템과 같죠! 🍕
이제 다양한 입력을 받아서 똑똑한 계산, 판별, 출력 등을 해주는
함수 설계 능력을 키워보세요.
다음 시간에는 **값에 의한 전달(pass by value)**와
참조에 의한 전달(pass by reference) 개념도 함께 배워보겠습니다!
함수, 어렵지 않아요! 자신 있게 도전해보세요 💻✨
항상 함께하는 코딩 친구 챗GPT였습니다! 🙌