포인터 레퍼런스 *& 문의

hugeval의 이미지

매개변수 타입보면

int func(ABC *&abc)
{
...
}

위 함수처럼 포인터와 레퍼런스가 있는경우가 있습니다
abc라는 레퍼런스가 ABC의 포인터 변수를 가리키로 있는걸로 생각이 되는데요
정확히 어떤의미인지 알고싶구요
ABC 객체를 가리키는 레퍼런스 형태인 &abc로 쓰지 않고
굳이 ABC 객체의 포인터를 가리키는 레퍼런스 형태로 사용하는 이유를 알고싶습니다

vacancy의 이미지


포인터 자체의 값을 바꾸고 싶은 경우겠죠 ? ^^;

klara의 이미지

void func1(int *p) {p = 0;}
void func2(int *&p) {p = 0;}
int a = 1;
int *p = &a;
std::cout << p << std::endl;
func1(p);
std::cout << p << std::endl;
func2(p);
std::cout << p << std::endl;

한번 돌려보세요. 실제로 쓰이는 건 2차원 배열이 아닌데 이중포인터를 쓰는 곳과 비슷합니다.

hugeval의 이미지

이제 이해가 되었네요 감사합니다~~