반응형
코딩을 하다보면 사용자 정의 함수를 정말 많이 사용하게 될 것 입니다.
그리고 객체지향 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 함수가 아니어도 다양한 함수를 만들어보시면 좋을 거 같습니다 ㅎㅎ
반응형
'전공공부 > C, C++' 카테고리의 다른 글
[C++] 7. C++ Class Static Member(static 멤버변수, 멤버함수) (31) | 2024.04.04 |
---|---|
[C++] 6. C++의 핵심 Class(캡슐화, 생성자 오버로딩, 멤버변수, 멤버함수) (25) | 2024.03.19 |
[C++] 4. 동적할당(동적 메모리 사용) (28) | 2024.03.11 |
[C++] 3. 함수 오버로딩(Function Overloading) (28) | 2024.03.09 |
[C++] 2. 배열, 포인터, 함수 (32) | 2024.03.07 |