프로그래밍언어/C언어[초급]

[C언어][초급] Chapter36. 함수의 반환값 – 함수가 결과를 되돌려주는 방법

about_IT 2025. 4. 18. 10:06

지금까지는 함수가 어떤 동작만 수행하고 끝나는 경우를 봤습니다.
하지만 어떤 함수는 계산된 값을 호출한 곳으로 되돌려줄 수 있습니다. 이걸 함수의 반환값(return value)이라고 합니다.

반환값이 있는 함수는 호출 후 결과를 변수에 저장하거나 직접 사용할 수 있어 매우 유용합니다.


● 반환값이 있는 함수 정의

int get_five() {
    return 5;
}

return은 함수 실행을 종료하고, 결과 값을 호출한 곳에 되돌려줍니다.


● 반환값 받기

int main(void) {
    int result = get_five();
    printf("결과: %d\n", result);
    return 0;
}

반환값을 변수에 저장하거나, 바로 printf 등에 사용할 수도 있습니다.


● return은 함수를 종료시킴

int double_num(int n) {
    return n * 2;
    printf("이 문장은 실행되지 않습니다.");
}

return 아래 코드는 실행되지 않습니다. 함수는 return을 만나면 바로 종료됩니다.


● void 함수는 return을 써도 값을 반환하지 않음

void say_hello() {
    printf("Hello!\n");
    return;  // 생략 가능
}

void 함수는 값을 되돌리지 않기 때문에 return을 써도 값은 전달되지 않습니다.


함수의 반환값은 결과를 돌려주는 역할로 매우 중요하며,
프로그램의 흐름을 제어하거나 여러 계산을 나누어 처리할 때 필수적으로 사용됩니다.

이제 실습 문제로 함수의 반환값을 직접 사용해보세요!


● 실습 문제

문제 1

정수 10을 반환하는 함수 get_ten을 정의하고 호출 결과를 출력하세요.

 

문제 2

두 정수를 받아 곱한 결과를 반환하는 함수 multiply를 작성하고 호출하세요.

 

문제 3

문자 하나를 받아 그대로 반환하는 함수 get_char를 작성하고 사용하세요.

 

문제 4

실수 두 개를 받아 평균을 반환하는 함수 avg를 작성하세요.

 

문제 5

return 아래 코드가 실행되지 않는 이유를 설명해보세요.

 









▶ 정답 확인하기

정답 1

int get_ten() {
    return 10;
}

int main(void) {
    int n = get_ten();
    printf("결과: %d\n", n);
    return 0;
}

 

정답 2

int multiply(int a, int b) {
    return a * b;
}

int main(void) {
    int result = multiply(3, 4);
    printf("곱셈 결과: %d\n", result);
    return 0;
}

 

정답 3

char get_char(char ch) {
    return ch;
}

int main(void) {
    char result = get_char('Z');
    printf("문자: %c\n", result);
    return 0;
}

 

정답 4

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

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

 

정답 5

return은 함수 실행을 종료하므로, 그 아래 있는 코드는 실행되지 않습니다.
컴파일은 되지만 해당 줄은 무시되어 실행되지 않는 죽은 코드(dead code)가 됩니다.