<aside> 💡 목차


</aside>

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


이전에 배웠던 내용

→ 값에 의한 호출

Untitled

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

→ [C++ 함수] - 값&참조에 의한 호출은 혼합하여 사용할 수 있습니다.

Untitled

이전에 배운건 이랬었지?

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

→ 참조에 의한 호출

참조에 의한 호출 ← 여기서 이렇게 원형으로 표현한거구나!

참조에 의한 호출 ← 여기서 이렇게 원형으로 표현한거구나!

저 코드를 까보면, 다음과 같은 구조를 하고있다.

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++올라오면서 편하게 쓰려고 만든 매크로 개념임

Untitled