참조자
C언어에서는 하나의 메모리 공간에 하나의 이름을 지정하여 사용하였지만 C++에선 이러한 이름을 여러개 저 정하여 사용할 수 있다.
int num1 = 10;
int &num2 = num1;
처럼 사용하면 num1의 메모리를 사용할때에 num2을 이용하여서도 메모리 접근을 할 수 있다.
보면 &연산자를 이용하여 사용하고 있는데 주의해서 보아야 할 점은 &연산자의 위치이다.
보통 &연산자를 포인터를 사용할때 많이 사용하지만 그것과 위치가 반대인것을 주의해서 보아야한다.
그리고 아래와 같이도 사용이 가능하다.
int num1 = 10;
int &num2 = num1;
int &num3 = num2;
int &num4 = num1;
이처럼 사용해도 num1의 하나의 메모리에 이름을 여러가지로 사용가능하다.
※불가능의 예
int &num = 20;
int #
int &num = NULL;
위의 세가지는 불가능 한데 그러한 이유는 참조자이기 때문에 선언과 동시에 참조를 할 수 있게 되어야한다.
포인터 대상의 참조자 선언
int num = 10;
int *ptr = #
int **dptr = &ptr;
int &ref = num;
int *(&pref) = ptr;
int **(&dpref) = dptr;
처럼 사용할 수 있다. 이해를 돕자면 int * 형의 이름을 하나 더 붙여주는거기 때문에
int* <데이터형을 나타냄> (&pref) <참조자선언> = ptr <참조자> ;
라보 보면 된데 더블포인터형도 마찬가지로 사용된다.
'Programming > C&C++&C#' 카테고리의 다른 글
[C++] C++ 다이아몬드 만들기 (0) | 2013.12.27 |
---|---|
[C언어] 문자, 문자열 입력 (0) | 2013.10.04 |
[C언어] 주소록 linked list + file I/O (0) | 2013.07.31 |
[C언어] 간단한 주소록 만들기를 링크드리스트로 구현 (0) | 2013.07.31 |
[C언어] C 언어 포멧 문자, 특수 문자, 입출력 스트림 (0) | 2013.06.15 |