객체 프로그래밍 C++(포인터를 활용한 스왑)
본문 바로가기
코딩공부/C++기초

객체 프로그래밍 C++(포인터를 활용한 스왑)

by 지누이야기 2024. 3. 6.
반응형

이번시간에는 포인터를 활용해서 변수의 값을 서로 바꿔주는 과정을 하려고 합니다.

 

일반적으로 포인터 없이 스왑을 한다면 temp를 이용해서 스왑을 하게 됩니다. 포인터를 사용하지 않은 코드는 다음과 같이 짤 수 있습니다.

 

그림 1

 

그러나 만약 함수를 사용하게 된다면 문제가 발생합니다. 1주차에 배웠던 지역변수라는 개념 때문에 원하는 대로 스왑이 되지 않게 됩니다.

 

그림 2

 

함수 안의 지역변수인 a, b는 함수 밖에 있는 num1과 num2에 영향을 주지 못하고 메모리를 반환하게 됩니다. 그렇게 되면 스왑을 제대로 할 수 없습니다.

 

만약 이 때 포인터를 써주게 된다면 이러한 문제를 해결 할 수 있습니다.

 

그림 3

 

이처럼 num1과 num2의 주소값을 스왑함수에 넘겨주고, 역참조를 통해서 스왑스키면 원하는 대로 숫자를 서로 스왑할 수 있습니다.

반응형

댓글