C 기본 문법 – 함수 – 1 – 매개변수와 반환 값

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였습니다! 🙌

답글 남기기