티스토리 뷰

C++/Function & Grammer

C++ : ref (참조)

채애 2022. 2. 5. 22:23

1. 값 전달 방식

2. 주소 전달 방식

3. 참조 전달 방식

 

 


주소 전달 방식( ptr ) 와 참조 전달 방식 ( ref ) 은

로우레벨 ( 어셈블리 ) 관점에서 실제 작동 방식은 디버깅을 해보면, 100% 같다 = 성능이 같다.

하이레벨 관점에서는 주소값을 넘겨주는 부분이 숨겨져 있다.

 

// num : 저장 바구니 이름
int num = 1;

// ptr : 주소를 담는 바구니
int* ptr = #
*ptr = 2;

// ref : num 바구니에 또 다른 이름을 부여.
//       num 이라는 바구니에 ref 라는 다른 이름을 지어줄게!
int& ref = num;
ref = 3;

 

 

그럼 ptr 와 ref 의 차이점은??

 

값 전달 처럼 편리하게 사용하고,

주소 전달 처럼 주소값을 이용해 진짜( num ) 을 사용하는,

1석 2조의 방식이 참조 전달 방식이다.

 

 


C++ 에서는 C 에 없는 ' Reference ' 를 잘 사용하기 때문에 잘 알아둬야 한다.

 

'C++ > Function & Grammer' 카테고리의 다른 글

C++ : 데이터 타입 변환  (0) 2022.02.05
C++ : 메모리 구조 - Data 영역  (0) 2022.02.04
C++ : Cast (캐스트) 연산자  (0) 2021.11.22
C/C++ : #ifdef 와 #endif  (0) 2021.11.21
댓글