작은 걸음 V — 나만의 자료형 만들기

복사 대신 원본에 이름 붙이기

복사 대신 원본에 이름 붙이기

이번에 배울 것

참조(reference)는 기존 대상에 붙이는 다른 이름입니다. int& 매개변수는 전달한 정수의 원본을 가리킵니다.

실행해 보기

예제 · example1.cpp
void add_one(int x)
{
    x = x + 1;
    print("Inside: ", x);
}

void small_main()
{
    int n = 10;

    add_one(n);

    print("Outside: ", n);
}

먼저 예제를 실행하면 Inside: 11, Outside: 10입니다. add_one(int x)를 add_one(int& x)로 바꾸어 다시 실행하세요. 이번에는 둘 다 11입니다.

처음에는 x가 복사본이었고, &를 붙인 뒤에는 n의 다른 이름이기 때문입니다. 원본을 바꾸겠다는 의도가 있을 때 사용합니다.

Exercise — Swap 만들기

두 int의 원래 값을 서로 바꾸는 swap(int& a, int& b) 함수를 만드세요.

연습 문제 코드 · exercise1_starter.cpp
void swap(int& a, int& b)
{
    // swap the original values.
}

void small_main()
{
    int x = 3;
    int y = 7;

    swap(x, y);

    print(x, ", ", y);
}

Hint

temp에 a를 잠깐 저장한 뒤 a=b, b=temp 순서로 바꾸세요.

풀이 보기
void swap(int& a, int& b)
{
    int temp = a;
    a = b;
    b = temp;
}

void small_main()
{
    int x = 3;
    int y = 7;

    swap(x, y);

    print(x, ", ", y);
}
← 이전 레슨다음 레슨 →