c++ 왕초보 질문입니다ㅠㅠ(void 함수)
조회수 763회
안녕하세요 c++ 입문한 지 이틀 된 코린이입니다 call by value refence를 직접 구현해보고자 아래와 같이 코딩을 해보았는데요
- 제가 작성 한 것 처럼 void 함수를 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
-
댓글 입력