c++ 왕초보 질문입니다ㅠㅠ(void 함수)

조회수 763회

안녕하세요 c++ 입문한 지 이틀 된 코린이입니다 call by value refence를 직접 구현해보고자 아래와 같이 코딩을 해보았는데요

  1. 제가 작성 한 것 처럼 void 함수를 2개 이상 정의해도 되나요?
  2. Callbyvalue 호출전: 1, 2 Callbyvalue 호출후: 1, 2 swap 호출전: 3, 4 swap 호출후: 4, 3 상기와 같이 구현하려면 어디를 수정해야 할까요?

include

void Exchange1(int a, int b) { int temp1;

temp1 = a;
a = b;
b = temp1;

}

void Exchange2(int* x, int* y) { int temp2;

temp2 = *x;
*x = *y;
*y = temp2;

int main() { int a, b, x, y;

a = 1;
b = 2;
x = 3;
y = 4;

printf("Call-by-value 호출전 : %d , %d\n", a, b);

Exchange1(a, b);

printf("Call-by-value 호출후 : %d , %d\n", a, b);

printf("swap 전 : %d %d\n", x, y);

Exchange2(x, y);

printf("swap 후 : %d %d\n", x, y);

return 0;

}

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 함수는 몇 개를 정의해서 사용하든 그건 개발자 마음이죠.. 다만 필요없는 함수를 이것저것 만들면 최적화가 안 될 뿐이죠..

    그리고 파라미터를 포인터로 넣어줬으면 Exchange2(&x, &y) 이렇게 변수의 주소값을 넣어줘야 합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 답변 감사드립니다! 제가 코딩한 것 처럼 void 함수를 두개 이상 사용해도 되는지에 관해서 궁금합니다 알 수 없는 사용자 2021.11.25 22:51
    • main 지역 함수 정의가 잘못되었습니다라는 에러 메시지가 뜨고..아무리 찾아봐도 void 함수를 중복해서 사용하신 사례가 안보이는것 같아서요ㅠㅠ 알 수 없는 사용자 2021.11.25 22:52
    • @ganzigi 그냥 Execution2 에서 중괄호가 안 닫혀서 나온 에러네요. 그리고 필요하다면 필요한만큼 함수는 정의하시고 사용하시면 됩니다. 알 수 없는 사용자 2021.11.26 01:14

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)