본문 바로가기
전공공부/C++

[C++] 5. 함수의 매개변수 전달(Call by Value, Pointer, Reference)

by 아임그류튜 2024. 3. 13.
반응형

 

 

코딩을 하다보면 사용자 정의 함수를 정말 많이 사용하게 될 것 입니다.

그리고 객체지향 C++에서는 클래스를 정의를 많이하게 되는데

멤버변수와 멤버함수를 사용하기에 모든 함수의 매개변수가 정말 중요합니다.

 

아래 변수의 값을 변경하는 예시를 봐주세요

그리고 꼭 실행해보세요!!!

아래 예시 코드를 보면서 차이점을 말씀드리겠습니다

 


Call by Value: 함수에 값을 전달

  - 값만 전달하여 함수에서만 변동되고 main 함수에서는 값이 변동이 안됨

Call by Pointer: 함수에 주소값 전달

  - 주소값를 전달하여 main 함수에서도 변동이 됨

Call by Reference: 함수에 주소값 전달

  - 주소값를 전달하여 main 함수에서도 변동이 됨

 

그럼 Call by Pointer와 Call by Reference의 차이는 무엇인가?

아래 코드의 차이를 보시면 바로 보이실겁니다. 가독성!!!

 

Call by Pointer의 함수에서는 *, &등 주소연산자를 많이 사용하게 됩니다.

Call by Reference의 함수에서는 매개변수쪽에만 &를 사용해주면 됩니다.

 

단!! 변수의 주소자체를 변경해야 하는 경우가 있다면 Call by Pointer를 사용해야 합니다!

 

꼭 위 예시를 돌려보며 확인해보세요!!!

Swap 함수가 아니어도 다양한 함수를 만들어보시면 좋을 거 같습니다 ㅎㅎ

반응형