본문 바로가기

지식창고/프로그래밍

(C, C++)c, c++에서 참조자란?

반응형

변수에 별명을 붙여주는 것을 참조자라 하는데, 더 쉽게 표현을 해보자면 일상생활을 할 때 사람마다

각자 친구나 주변사람들에 의해 별명으로 불리는 경우가 있습니다. 바로 이와 같다고 생각을 하면 된다.

(더 무슨 말인지 모르게 되셨나요? ㅜㅜ...) 

, A라는 사람이 평소에 느리적느리적 행동을 한다 하여 주변사람들이

 A라는 사람에게 거북이라는 별명을 붙여주게 되었고,

A라는 사람도 자신이 아는 사람들이 거북아!’라고 불러도 대답한다는 점에서

같다고 설명을 할 수 있겠습니다. 역시 말로 설명하는 것보다 소스를 통하여 설명하여 보겠습니다.

 

 

#include <iostream>

 

 

using namespace std;

 

 

int main(void)

{

                  int num1 = 1;

                  int &num2 = num1;

//참조자의 표시는 자료형 다음에 & 적어주어야 하며, 위와 같은 참조의 경우에는

//반드시 변수만을 참조   있다는 점과 참조자는 선언과 동시에 반드시

//변수를 이용한 초기화를 해야 한다는 점을 주의하자!!

//? 그럼 포인터도 비슷하게 초기화 하던 포인터 처럼 선언한  따로

//NULL 초기화는 안되는가?! 라는 의문이 든다면 직접 코딩을 해보길!!!!

 

 

                  cout << "num1  : " << num1 << ", 참조자 num2  : " << num2 << endl;

 

 

 

//그럼 여기서 주소는 어떻게 되는가? 라고 의문을 품게  수도 있는데

//이럴  역시 확인사살을 위한 확인 코드를 작성하여 보았다.

                  cout << "num1 주소  : " << &num1 << ", 참조자 num2 주소  : "<< &num2 << endl;

// num1,num2 주소와 값은 모두 같다는 것을 확인   있을 것이다.

//그이유는 참조한 num1 메모리 공간을 별명 num2라는 것을 붙여 같이 사용하기

//때문이다. 만약에라도  부분에서  같을까? 라고 질문한다면, 별명으로 해당하는

//사람을 불렀을   사람은   바라 보는가? 라는 질문과 같다고 표현하고 싶다.

//참조자란 바로   아니라 자신이 참조하고 있는 주소까지도 참조하게 된다는

//점이다. 여기서 팁으로 참조자는 변수만을 참조할  있다라고 말을 했는데

//상수를 참조할  있다는 점을 간단하게 보여주겠다.

//바로 const키워드를 이용하면 가능하다.

 

 

                  const int num3 = 5;                 

// 여기서 num3이라는 변수를 const를 사용하여 5라는 숫자로 상수화를 시켰다

                  const int &num4 = num3;

 

 

                  cout << "const int num3 : " << num3 << ", const int &num4 = num3 : "<< num4 << endl;

 

 

//이렇게해서도 이해가  된다면!

//const int &num4 숫자를 이용하여 초기화를 하여 출력해보길!!

 

 

                  return 0;

}

반응형