C++ 참조자(Reference) 사용법



C++ 참조자는 변수를 가리키는 변수다.

예를 들어 숫자 10을 담고 있는 변수 a 가 있다.

a를 가리키는 참조자 변수 b를 만들었다.

b에 값을 변경하면 a도 바뀌게 된다.



 참조자(Reference) 이해

 

사용법은 아래와 같다.

 int a = 10;

 int &b = a;


위에서 굵은 글씨로 &b라고 표시 된 부분이 참조자 변수 사용 방법이다.

&는 변수의 주소로도 사용되어 포인트를 가리킬때도 사용된다.

하지만 위의 참조자는 다른 내용이니 혼돈하지 말자.


[참조자의 잘못 사용 예]

 잘못된 사용

 설명

 int &b = 10;  

 참조자에 직접 데이터를 넣을 수 없다.

 int &b;

 참조자 선언과 동시에 가리킬 변수를 설정해 줘야 한다.

 int &b = NULL;

 참조자는 NULL 값이 허용되지 않는다. 


[전체 예제]


#include <iostream>

using namespace std;


int main(int argc, char** argv) 

{

    int a = 10;

    int &b = a;


    cout<<"a : "<< a <<endl;

    cout<<"b : "<< b <<endl;


    b = 20;

    cout<<"a : "<< a <<endl;

    cout<<"b : "<< b <<endl;

 

    return 0;

}


[결과]

a : 10

b : 10

a : 20

b : 20




 참조자(Reference)를 이용한 함수 호출

 

함수의 인자를 참조자로 선언 하면 어떻게 될까.


 void dataPlus( int &value );


해당 함수를 호출 할 때 인자 값으로 넣은 변수가 변경 된다.

이것을 Call-by-reference라 한다.

참고로 C에서는 다음과 같이 선언해야 호출 한 쪽의 변수가 변경 된다.

void dataPlus( int *value );

포인터는 복잡하니 참고로만 알아둔다.


[전체 예제]


#include <iostream>

using namespace std;


void dataPlus( int &value)

{

      value = value + 1;

}


int main(int argc, char** argv) 

{

    int a = 10;


    cout<<"a : "<< a <<endl;

    dataPlus( a );

    cout<<"a : "<< a <<endl;

 

    return 0;

}


[결과]

a : 10

a : 11





반응형

'프로그램 > C++' 카테고리의 다른 글

[C++] bool 자료형  (0) 2017.12.29
[C++] namespace 사용법  (0) 2017.12.27
[C++]인라인 함수 사용법  (0) 2017.12.26
[C++]함수 매개변수 디폴트 값  (0) 2017.12.25
[C++]함수 오버로딩 (Function Overloading)  (0) 2016.12.03

+ Recent posts