본문 바로가기
정보처리기사

[정보처리기사] C언어에서 Return이란?

by 공불러 2024. 3. 6.
728x90
반응형

C언어에서 Return이란

 

 

목차

    return이란?

    return은 함수가 값을 반환하고 호출된 위치로 돌아가는 데 사용되는 키워드입니다. return 문은 함수의 실행을 종료하고, 함수를 호출한 곳으로 제어를 반환합니다.

     

    일반적으로 return 문은 함수의 끝에서 사용되며, 함수가 반환해야 하는 값을 지정합니다. 함수의 반환 유형이 void가 아닌 경우, return 문은 해당 유형에 맞는 값을 반환해야 합니다.

     

    예를 들어, main 함수는 프로그램의 진입점으로 사용되며, 일반적으로 프로그램의 실행 결과를 나타내기 위해 0을 반환합니다. 이는 프로그램이 정상적으로 종료되었음을 의미합니다.

     

    또한 return 문은 함수의 실행을 중간에서 종료할 때에도 사용됩니다. 이 경우에는 함수가 호출된 곳으로 즉시 제어를 반환하며, 함수의 반환 유형에 맞는 값을 반환할 수 있습니다.

     

    간단한 예시로, 아래의 함수는 두 개의 정수를 더한 결과를 반환합니다.

    int add(int a, int b) {
        int sum = a + b;
        return sum; // sum 값을 반환하고 함수 종료
    }

     

    위의 예시에서 return 문은 add 함수를 호출한 곳으로 sum 값을 반환하고, 함수의 실행을 종료합니다.

    return의 역할

    함수의 종료

    return 문은 함수의 실행을 중단하고 호출된 위치로 제어를 반환합니다. 함수가 실행되는 도중에 return이 실행되면 함수의 실행이 즉시 중단되며, 해당 함수가 호출된 곳으로 돌아갑니다.

    #include <stdio.h>
    
    void functionWithReturn() {
        printf("이 문장은 실행됩니다.\n");
        return; // 함수의 실행을 중단하고 호출된 위치로 반환
        printf("이 문장은 실행되지 않습니다.\n");
    }
    
    int main() {
        printf("함수 호출 전\n");
        functionWithReturn();
        printf("함수 호출 후\n");
        return 0;
    }

    값의 반환

    함수가 호출된 곳에 값을 반환하는 데 사용됩니다. 함수의 반환 유형이 void가 아닌 경우, return을 통해 해당 유형에 맞는 값을 반환합니다.

    #include <stdio.h>
    
    int sum(int a, int b) {
        int result = a + b;
        return result; // 결과 값을 반환
    }
    
    int main() {
        int result = sum(3, 5);
        printf("결과: %d\n", result); // 출력 결과: 8
        return 0;
    }

    프로그램의 종료

    main 함수에서의 return은 프로그램의 종료를 의미합니다. 일반적으로 프로그램이 정상적으로 종료되었을 때는 0을 반환하고, 오류가 발생했거나 비정상적인 종료일 때는 다른 값을 반환합니다. 호스트 환경은 이 반환 값에 따라 프로그램의 상태를 파악하고 적절한 조치를 취할 수 있습니다.

    #include <stdio.h>
    
    int main() {
        printf("프로그램 시작\n");
        return 0; // 프로그램 정상 종료
        printf("이 문장은 실행되지 않습니다.\n");
    }

    조건문과 반복문의 종료

    return은 조건문과 반복문 내에서 사용되어 해당 블록의 실행을 종료하고 블록을 빠져나갈 때에도 사용됩니다.

     

    #include <stdio.h>
    
    void printNumbers(int n) {
        for (int i = 1; i <= n; i++) {
            if (i == 3) {
                return; // 반복문 종료
            }
            printf("%d ", i);
        }
    }
    
    int main() {
        printf("숫자 출력: ");
        printNumbers(5); // 출력 결과: 1 2
        return 0;
    }

     

    메모리의 해제

    동적으로 할당된 메모리를 사용하는 함수에서, return 전에 할당된 메모리를 해제하는 역할을 수행할 수 있습니다.

    #include <stdio.h>
    #include <stdlib.h>
    
    int* allocateMemory() {
        int* ptr = (int*)malloc(sizeof(int));
        *ptr = 10;
        return ptr; // 동적으로 할당된 메모리의 주소를 반환
    }
    
    int main() {
        int* ptr = allocateMemory();
        printf("할당된 메모리의 값: %d\n", *ptr); // 출력 결과: 10
        free(ptr); // 메모리 해제
        return 0;
    }
    728x90
    반응형

    댓글