아직도 기억이 생생하다...
포인터를 이해하기 위해 고생을 했고 사실 아직도 헷갈린다는걸,,,
근데 왜 C++에는 참조자
까지 있는거냐고,,울고싶어라 😂
결론부터 말하자면, 변수의 또 다른 이름(별명)
을 컴파일러에게 알려주는 것이다!
참조자를 정의하는 법은 가리키고자 하는 타입 뒤에 &
를 붙여주면 된다
주의할점은 참조자는 반드시 선언
과 정의
를 동시에
해줘야 한다.
또한, 참조자는 한번
어떤 변수의 참조자가 되어버리면, 더 이상 다른 변수를 참조할 수 없게 된다
.
예시를 보도록 하자
#include <iostream>
int main(void)
{
int a = 2;
int &ref_a = a;
std::cout << "a : " << a << std::endl;
std::cout << "ref_a : " << ref_a << std::endl;
a = 3;
std::cout << "a : " << a << std::endl;
std::cout << "ref_a : " << ref_a << std::endl;
ref_a = 4;
std::cout << "a : " << a << std::endl;
std::cout << "ref_a : " << ref_a << std::endl;
return (0);
}
결과
위에서 확인할 수 있듯이, 새로운 이름이기 때문에 a
에서 바꾸든 ref_a
에서 바꾸든 모두
가 바뀌는 것을 확인할 수 있다.