ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++] 참조 변수(Reference variable)
    C++ 2019. 7. 18. 11:45

    참조 변수란?

    - 같은 메모리 주소에 다른 이름을 붙여 사용하는 것으로 대상을 별명으로 부르는 것과 유사하다.

    - 참조 변수는 참조자라고 부르기도 한다.

    - 참조 변수는 포인터와 달리 &변수명으로 선언한다.

     

     

    참조 변수의 주소

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        int value = 5;
     
        int *ptr = nullptr;
        ptr = &value;
     
        int &ref = value;
        
        cout << &value << endl;
        cout << &ref << endl;
        cout << ptr << endl;
        cout << &ptr << endl;
    }
     
    cs

     

    포인터 변수는 가리키는 곳의 주소 외에도 포인터 변수 자체의 주소를 따로 가지는데,

    참조자의 주소는 가리키는 곳의 주소와 동일하다. (참조자는 반드시 초기화 해줘야 한다.)

     

     

    참조자와 포인터의 차이

    - null의 허용 여부(포인터는 가능, 참조자는 불가능)

    - 참조 대상 변경 가능 여부(포인터는 가능, 참조자는 불가능)

    - 초기화 여부(포인터는 초기화를 하지 않아도 됨, 참조자는 초기화가 필수)

     

     

    매개변수를 포인터 대신 참조자로 선언할 경우 장점

    포인터로 값을 넘기면 넘겨주고자 하는 변수의 주소를 복사하는 과정이 필요한데,
    참조자로 넘길 경우 복사 과정 없이 변수 자체가 넘어가기 때문에 성능 측면에서 더 좋다.

     

     

     

     

     

    참고자료

    https://www.inflearn.com/course/following-c-plus/dashboard (인프런, 홍정모의 따라배우는 C++)

    'C++' 카테고리의 다른 글

    [C++] this 포인터  (0) 2019.08.29
    [C++] 함수 포인터  (0) 2019.08.27
    [C++] Tuple (복수의 값 반환)  (1) 2019.08.22
    [C++] const 위치에 따른 포인터의 의미  (0) 2019.07.18
    [C++] 메모리와 동적할당(new, delete)  (0) 2019.07.17
Designed by Tistory.