Updated:

less than 1 minute read

개요

  • 어떤 변수에 별명을 붙이는 것
  • 별명에 변수가 붙으면 해당 별명은 다른 변수로 변경 불가
  • 레퍼런스의 레퍼런스, 레퍼런스의 배열, 레퍼런스의 포인터는 불가능
  • 댕글링 레퍼런스(Dangling reference)
    • 참조할 대상이 사라진 레퍼런스
  • 복사 비용 감소
    • 포인터를 사용해도 되지만 불필요한 연산자(*, &) 사용 불필요


코드

#include <iostream>

using namespace std;

int &func(int &arg) {
    arg = 2;
    return arg;
}

int main() {
    int i = 0;
    int &i1 = i;
    i1 = 1;
    cout << i << ", " << i1 << endl;

    const int &i2 = 1;
    int i3 = i2;
    cout << i2 << ", " << i3 << endl;

    int i4 = func(i3);
    cout << i3 << ", " << i4 << endl;

    return 0;
}


실행 결과

1, 1
1, 1
2, 2