yEverything

#3 본문

Coding/C++

#3

yEvery 2022. 1. 23. 21:16

문제 02-1 [참조자 기반의 Call-by-reference 구현]

문제 1 참조자를 이용해서 다음 요구사항에 부합하는 함수를 각각 정의하여라.

코드

PlusFunc은 인자로 전달된 int형 변수의 값을 1씩 증가시키는 함수,

Change는 인자로 전달된 int형 변수의 부호를 바꾸는 함수다.

함수를 int형으로 하였지만, void로 하고, 함수를 따로 호출하고 출력시키는 형태도 가능하다.

 

문제 3 SwapPointer(ptr1, ptr2); 를 하고 나면 ptr1과 ptr2가 가리키는 대상이 서로 바뀌도록 SwapPointer함수를 정의해 보자.

뭔가 잘못된...? 코드

ptr과 ptr2가 가리키는 대상이 바뀌도록 해야하는데 이건 ptr1과 ptr2가 가리키는 num1과 num2의 주솟값을 서로 바꿔주는 것이 아니라 ptr1과 ptr2가 가리키고 있는 num1이랑 num2의 값을 바꿔주는 거 같다. 출력도 num1, num2로 한 것도 잘못 됐다고 생각함. 포인터들이 가리키는 대상이 바뀐 것인지 알 수 없다. 아마 ptr1은 num1을, ptr2는 num2를 그대로 가리키고 있는데 이 둘의 값만 서로 swap해준 듯.

올바른 코드

이렇게 작성해야 포인터가 가리키는 주솟값들을 swap해주고, ptr1과 ptr2가 가리키는 대상이 바뀐 것을 확인할 수 있다.

'Coding > C++' 카테고리의 다른 글

#6  (0) 2022.01.26
#5  (0) 2022.01.25
#4  (0) 2022.01.24
#2  (0) 2022.01.22
#1  (0) 2022.01.21