본문 바로가기
소프트웨어개발

C++,참조연산

by 보이드메인 2020. 3. 18.

C++,참조연산

< 질문 > 

여기서  참조연산자 & 과 주소참조 연산자  *

이 두개가 한꺼번에 쓰이고 있다. 왜 이렇게 썼을까? 

 

void allocate_doubles(double*& p, size_t& n);

{    

      cout << “Input the number of doubles:” ;<br />       cin >>  n ;    

      p = new double[n] ;

}

 

 

< 답변 > 
 
 
연산자를 단계별로 들여다 봅시다.
double& 은 말그대로 double의 참조 입니다.
double*&은 double*( 포인터 또는 array 배열 )의 참조입니다.
 
위와 유사하게 사용할수 있는, 이중포인터 double **p; 을 볼까요? 
p는 아래와 같이 사용할 수 있습니다.
*p = new double [n];
 
**로 값을 받으면, 해당 오브젝트에서 p를 해제할수 있습니다.
&참조로 받으면, 해제할 수 없습니다.
 
 

댓글