홈 > IT > IT정보
IT정보

[C++] 참조자 (Reference)

3 Selovic 0 110 0 0
* C++에서만 등장하는 개념이 아니지만,
C++관점에서 게시글을 작성하여 C++ 머릿말을 붙였습니다.

*참조자란?
-> 선언된 변수의 공간에 이름을 추가로 부여하는 방법 혹은 행위코드

*예제코드*
int num=10;
int &ref = num;

위 코드에서 기존 생성된 num변수를 호출하는 방법은
num과 ref로 두가지이다.

*&연산자*
기존 선언된 변수앞에 붙는경우 변수의 주소값을 반환한다.
새로 선언되는 과정에서 붙는다면 참조자를 선언한다.

*참조자선언시 주의사항*
 - 상수를 대상으로 참조자 선언 불가능
int &reft = 10; //불가능 


 - 생성과 동시에 변수를 참조해야 함
 int &reft; //불가능


 - NULL값으로 초기화 선언 불가능
 int &reft = NULL; //불가능 


- 참조자는 한번 선언되면 참조하는 변수를 변경할 수 없음

- 포인터 변수를 상대로도 참조자 선언 가능
int num1 = 1;
int * ptr = &num1;
int *(&ptr) = ptr; 


*참조자 활용 함수예제*
swapref (&ref, &ref2)
{
int temp = ref;
ref = ref2;
ref2 = temp;
}
int main (void)
{
int val = 18;
int val2 = 810;
swapref (val,val2);
cout<<val<<endl;
cout<<val2<<endl;
return 0;
}


함수의 호출문을 보면 전달되는 내용을 확인할 수 없는 단점이 존재함.
-> 대부분 포인터를 이용한 Call-by-reference 선호

만약 참조자의 선언에 const 선언을 하는경우
값을 참조하지만 변경은 허용하지 않게됨.

,

0 Comments
Category
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand
PlusFriend Chat