C언어 요점 정리 - 함수의 리턴

2022. 1. 6. 19:38C언어

마지막 리턴타입을 알아봅시다.
두수를 더한값에서 빼기 10, 두수를 더한값에서 더하기 10을 하려고 하면 함수에서 더해줘야 될까요?? 호출에서 해줘야할까요? 만약 함수에서 하게되면 무슨 문제가 생기죠? +10으로 써놓으면 고정이 된다는거죠. 빼기하고 싶은데 무조건 더하기만 되게 됩니다. 그렇기에 밑에 호출하는부분에서 해줘야합니다.

void test(int i){
    printf("%d", i);
   }
int main(){
    int a = test(i);
    return 0;
   }

그러나 지금 이렇게 쓰면 오류가 나요. 왜냐? int a는 정수를 받겠다라고 했는데 test(i)의 값은 정수값이 아니기 때문에 그렇죠. 값으로 만들어주기위해서 return을 사용하게 됩니다.

int test(int i){
    return 20;
   }
int main(){
    int a = test(2);
    return 0;
   }

위와 같은 방식으로 리턴값 20을 주게되면 test()함수는 20으로 바뀝니다. 매개변수와 관계없이!! 대신 리턴이 지금 정수 20을 보내고 있기 때문에 타입을 일치시켜줘야 하므로 void부분을 int로 변경해주셔야 합니다. 그렇기에 리턴값으로 두수를 더한 값을 구하고 싶을때

int test(int i, int j){
    return i+j;
   }
int main(){
    int a = test(2, 5);
    printf("%d", a);
    return 0;
   }

출력이 되었다고해서 값이라고 하시는 분들이있는데 출력과 값은 아무상관없습니다. 값으로 이용하려고 한다면 무조건 리턴을 이용하셔야 합니다. 출력과 상관없습니다. 값으로 사용하고 싶으시면 꼭 리턴을 설정해주셔야합니다.

728x90