정수 변수를 가리키는 포인터가 있습니다. 그런 다음이 포인터를 참조 변수에 할당합니다. 이제 포인터가 다른 정수 변수를 가리 키도록 변경하면 참조 변수의 값이 변경되지 않습니다. 왜 그 이유를 설명 할 수 있습니까?참조 변수 및 포인터 문제
int rats = 101;
int * pt = &rats;
int & rodents = *pt; // outputs
cout << "rats = " << rats; // 101
cout << ", *pt = " << *pt; // 101
cout << ", rodents = " << rodents << endl; // 101
cout << "rats address = " << &rats; // 0027f940
cout << ", rodents address = " << &rodents << endl; // 0027f940
int bunnies = 50;
pt = &bunnies;
cout << "bunnies = " << bunnies; // 50
cout << ", rats = " << rats; // 101
cout << ", *pt = " << *pt; // 50
cout << ", rodents = " << rodents << endl; // 101
cout << "bunnies address = " << &bunnies; // 0027f91c
cout << ", rodents address = " << &rodents << endl; // 0027f940
우리는 토끼에게 pt를 할당했지만 설치류의 가치는 여전히 101입니다. 이유를 설명하십시오.
int & rodents = *pt;
그래서 설치류가 하나의 변수에 할당되면 다른 변수를 다시 참조 할 수 없다는 것을 의미합니다. – Naphstor
@Naphstor : 맞습니다. 참조는 다른 변수를 참조 할 수 없으며 항상 바인딩 된 변수에 대한 참조로 남아 있습니다. –