목차
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;
}
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 1. 소프트웨어 공학이란? 1과목 소프트 웨어 구축 (0) | 2024.03.11 |
---|---|
[정보처리기사실기] C언어로 입력받아 더 하기 (0) | 2024.03.06 |
[정보처리기사 실기] 디자인 패턴 - 행위 패턴 암기하기! (2) | 2024.02.28 |
[정보처리기사] 구조패턴 암기하기 - 디자인 패턴 (1) | 2024.02.27 |
[정보처리기사] Gof 디자인 패턴 생성패턴 암기하기 (feat. 스타크래프트) (4) | 2024.02.22 |
댓글