우선 레퍼런스를 알아 보기 전에 변수에 대해서 간단히 알아 봅시다.
1. 변수 (Variable) |
: 변수란 메모리 공간에 붙은 이름 이라고 할 수 있습니다. C에서는 하나의 메모리 공간에 하나의 이름만을 가지고 있었는데, C++에서는 하나의 메모리 공간에 둘이상의 이름을 붙여 줄 수 있죠. 그것이 바로 레퍼런스입니다.
2. 레퍼런스 |
: 이름을 지니는 대상에 별명을 붙여주는 행위. 아래와 같이 사용합니다.
- int main()
- {
- int val =10;
- int *pVal = &val; //주소 값을 얻기 위해 & 연산자 사용의 예
- int &Val = val; //레퍼런스 선언을 위한 &연산자 사용
- return 0;
- }
'&' 연산자를 이용해
마음대로 변수에다가 별명을 붙여 줄 수 있는데요. 아래 예제를 보시죠.
- #include <iostream>
- using namespace std;
- int main()
- {
- int val =10;
- int &AAA = val; //레퍼런스 선언을 위한 &연산자 사용
- AAA = 20;
- cout<< "val value is : "<<val <<endl;
- cout<< "AAA value is : "<<AAA <<endl;
- val = 40;
- cout<< "val value is : "<<val <<endl;
- cout<< "AAA value is : "<<AAA <<endl;
- return 0;
- }
아래 예제를 실행한 결과 입니다.
레퍼런스를 이용한 변수의 값을 변경하여도 어차피 AAA나 val은 같은 메모리 공간을 가지고 있기 때문에 위와 같은 출력 결과를
출력하는 것을 알 수 있습니다.
'개발지식창고 > C++' 카테고리의 다른 글
정보은닉과 캡슐화 (Information Hiding & Encapsulation) (0) | 2010.11.14 |
---|---|
Call by Value & Call By Reference (값에 의한 호출, 참조에 의한 호출) (0) | 2010.11.14 |
데이터, 스택(Stack), 힙(Heap) 영역 (0) | 2010.11.14 |
콘스트(const)란? (0) | 2010.11.14 |
인라인 함수(Inline Function) 와 네임스페이스(Namespace) (0) | 2010.11.14 |