소프트웨어개발
C++,참조연산
보이드메인
2020. 3. 18. 21:25
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를 해제할수 있습니다.
&참조로 받으면, 해제할 수 없습니다.