본문 바로가기

Programming/C&C++&C#

[C++] 참조자

728x90
반응형

참조자 


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 <참조자> ;


라보 보면 된데 더블포인터형도 마찬가지로 사용된다.





반응형