본문 바로가기

C++ 언어/연습문제

C++ 언어 연습문제8

[문제]

문제의 제시에 앞서 먼저 다음 코드를 보자.

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