C++ 언어/연습문제
C++ 언어 연습문제8
powerdeng
2022. 8. 8. 20:22
[문제]
문제의 제시에 앞서 먼저 다음 코드를 보자.
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++ 프로그래밍