<aside> 💡 목차
</aside>
<aside> 💡 함수 호출 및 포인터를 이해하기 위한 필수 개념

이거 값에 의한 호출로 하면 원본값이 안바꼈었지?

이전에 배운건 이랬었지?
참조에 의한 호출로!
이걸 컴파일러단에서 바이너리로 까보면, 아래 코드와 똑같이 굴러간다

참조에 의한 호출 ← 여기서 이렇게 원형으로 표현한거구나!
저 코드를 까보면, 다음과 같은 구조를 하고있다.
px의 주소, py의 주소를 가지고 오고
temp는 px 주소가 가르키는 주소의 값을 가져오고
*px가 가르키는 주소의 원본값은 *py가 가르키는 주소의 원본값을 넣는다는 의미
*py가 가르키는 주소의 원본값은 temp값을 넣으면 된다는것
이렇게 하면 복잡하니까, 그냥 참조에 의한 호출로 매크로를 만든것임
void exchange(int &px, int &py);
불편하게 포인터 하나하나 안써주고 이렇게 쓸 수 있게..
[포인터 vs 참조 - 참조를 이용한 swap() 함수](https://cybecho.notion.site/vs-swap-43dd383a6187433d8a1a4b62a4e679d7)
똑같다! 근데 C에서 매개변수까지 포인터를 넣어주다보니, 실수가 많아져서 사용하기 불편함
그래서 C++올라오면서 편하게 쓰려고 만든 매크로 개념임
