int *&x
int *y
의 차이
x는 int 포인터에 대한 레퍼런스 타입
y는 int 포인터 타입
아래 func 함수 파라미터로 넘길 시 y는 복사본을 받을거고 x는 포인터에 대한 주소를 받게 된다.
이거는 y는 스코프 벗어 날 시 값 변화가 없지만 x는 변경된다
void func(int* p, int*& pr)
{
p++;
pr++;
}
int main()
{
int a[2];
int* b = &a[0];
int* c = &a[0];
std::cout << "\nBefore call to function:" << std::endl;
std::cout << "b = " << b << std::endl;
std::cout << "c = " << c << std::endl;
func(b, c);
std::cout << "\nAfter call to function:" << std::endl;
std::cout << "b = " << b << std::endl;
std::cout << "c = " << c << std::endl;
return 0;
}
결과
Before call to function:
b = 0xbf811a48
c = 0xbf811a48
After call to function:
b = 0xbf811a48
c = 0xbf811a4c
"*&" - C++ Forum (cplusplus.com)