상세 컨텐츠

본문 제목

[C++] 레퍼런스(Reference)

C++ 문법

by simstealer 2022. 5. 30. 16:57

본문

■레퍼런스(Reference)

- 포인터의 불편함을 해결하기위해 등장.  1) 포인터는 널(NULL) 값이 포함될 수 있다.  2) 포인터는 간접참조를 하기위해 계속적으로 역참조 연산자를 사용해야한다.

void Swap(int* lhs, int* rhs)
{
    // 포인터를 안전하게 사용하려면 항상 널 체크를 해줘야 한다.
    if (lhs == NULL || rhs == NULL)
    {
        return;
    }
 
    // 간접 참조를 하려면 * 연산자를 사용해야 한다.
    int temp = *lhs;
    *lhs = *rhs;
    *rhs = temp;
}

레퍼런스를 사용하면 아래와 같다.

void Swap(int& lhs, int& rhs)
{
    // 레퍼런스는 널 값이 들어올 수 없기 때문에 널 체크를 하지 않아도 된다.
 
    // 더 이상 * 연산자를 사용하지 않아도 된다.
    int temp = lhs;
    lhs = rhs;
    rhs = temp;
}
int a, b;
Swap(&a, &b); // 포인터를 사용할 때는 &연산자를 사용하여야 하지만,
Swap(a, b);   // 레퍼런스를 사용할 때는 & 연산자를 굳이 적지 않아도 된다.

레퍼런스를 사용할 땐, 꼭 초기화를 해주자!!! 아니면 컴파일 오류 남

int& ref = a;

 

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

[C++] 오버로딩(OverLoadding)  (0) 2022.05.31
[C++] 클래스(Class)  (0) 2022.05.30
[C++] 객체 지향 프로그래밍이란?  (0) 2022.05.30
[C++] 별 찍기  (0) 2022.04.20
[C++] 문법_for 문  (0) 2022.04.18

관련글 더보기

댓글 영역