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

C++,참조연산

by inkul 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를 해제할수 있습니다.
&참조로 받으면, 해제할 수 없습니다.
 
 

'소프트웨어개발' 카테고리의 다른 글

C, File I/O, open(), fopen() 그리고 dup()  (0) 2020.03.30
select,epoll,poll  (0) 2020.03.18
C++,참조연산  (0) 2020.03.18
[JAVA] DATA Type  (0) 2016.07.12
[ GPS ] GPS Packet Sheet  (1) 2016.01.05
[음성합성 기술 ] 음성합성 기술 및 국내외 현황 2013  (0) 2016.01.05

댓글0