[문제]
문제의 제시에 앞서 먼저 다음 코드를 보자.
int main(void)
{
int num1 = 5;
int *ptr1 = &num1;
int num2 = 10;
int *ptr2 = &num2;
}
위의 코드를 보면 ptr1과 ptr2가 각각 num1과 num2를 가리키고 있다. 이때 ptr1과 ptr2를 대상으로 다음과 같이 함수를 호출하고 나면,
SwapPointer(ptr1, ptr2);
ptr1과 ptr2가 가리키는 대상이 서로 바뀌도록 SwapPointer 함수를 정의해 보자.
[실행결과]
5
10
10
5
[코드]
#include<iostream>
using namespace std;
void SwapPointer(int* (&pref1), int* (&pref2));
int main()
{
int num1 = 5;
int* ptr1 = &num1;
int num2 = 10;
int* ptr2 = &num2;
cout << *ptr1 << endl;
cout << *ptr2 << endl;
SwapPointer(ptr1, ptr2);
cout << *ptr1 << endl;
cout << *ptr2 << endl;
return 0;
}
void SwapPointer(int* (&pref1), int* (&pref2))
{
int* temp = pref1;
pref1 = pref2;
pref2 = temp;
}
<참고>
윤성우의 열혈 C++ 프로그래밍
'C++ 언어 > 연습문제' 카테고리의 다른 글
C++ 언어 연습문제10 (0) | 2022.09.26 |
---|---|
C++ 언어 연습문제9 (0) | 2022.08.14 |
C++ 언어 연습문제7 (0) | 2022.08.08 |
C++ 언어 연습문제6(R) (0) | 2022.08.02 |
C++ 언어 연습문제5 (0) | 2022.08.02 |