참조자라는 것은 아마도 포인터에서 많이 들어보셨을겁니다. 하지만 이 참조자는 포인터와는 별개의 개념이니
굳이 포인터를 떠올리시지 않으셔도 됩니다.
변수란 할당된 메로리 공간에 붙여진 이름이고 그 이름을 통해서 호출하게 됩니다. 그렇다면 하나의 메모리 공간에 두 개 이상의 이름이
붙을 수 있을까요?
두 개 이상의 이름을 붙이는게 바로 참조자입니다.
i라는 변수가 선언됬다고 가정해보면 i는 메모리에 일정 공간을 할당받으며 i라는 이름으로 접근이 가능합니다.
거기다 int &j = i; 라고 선언하면 i의 메모리 공간에 이름이 i와 j가 선언되는겁니다.
(※ &는 주소 값을 반환해주는 연산자지만 이렇게 새로 선언하는 변수 앞에 오게 되면 참조자 선언을 뜻합니다. 이미 선언된 변수앞에 오면 주소 값을 반한합니다.)
그렇다면 j의 값을 변환하면 i의 값은 어떻게 되는지 코드로 보겠습니다.
i의 값을 20으로 선언한 후에 j의 값을 45로 바꾸니 i와 j모두 같은 45로 나타나며
이 두개의 변수 주소 값은 모두 동일한 주소 값을 나타내고 있습니다.
즉 참조자는 자신이 참조하는 변수를 대신하는 또 다른 이름, 즉 별명인 셈입니다.
뿐만 아니라 배열도 참조가 가능하며 참조된 변수를 다시 참조하는 것도 가능합니다. 뿐만 아니라 포인터도 변수이기 때문에 포인터도 참조할 수 있습니다.
단 참조자는 선언된 동시에 참조를 해야합니다. 미리 선언하고 나중에 참조하는것이 불가능합니다, 또한 포인터처럼 NULL로 초기화도 불가능합니다.
'알음알음-IT > 개발_기초_코딩_C++' 카테고리의 다른 글
C++ 공부하기 - 7.new&delete (0) | 2020.02.04 |
---|---|
C++ 공부하기 - 6.참조자와 함수 (0) | 2020.02.04 |
C++ 공부하기 - 4.이름공간(namespace) (0) | 2020.02.04 |
C++ 공부하기 - 3.인라인 함수 (0) | 2020.02.04 |
C++ 공부하기 - 2.함수의 오버로딩와 매개변수의 디폴트 값 (0) | 2020.02.04 |