더북(TheBook)

1.5.1.2 레퍼런스에 의한 호출

함수의 매개변수를 수정하려면 인수를 레퍼런스로 전달(Pass-by-Reference)해야 한다.

void increment(int& x)
{
    x++;
}

이제, 변수 i 자체가 증가되어 예상대로 5를 출력한다. 우리는 1.8.4절에서 레퍼런스에 대해 자세히 살펴볼 것이다.

연산 결과와 같은 임시 변수들은 레퍼런스로 전달할 수 없다.

increment(i + 9);    // 오류: 임시 변수는 참조할 수 없다.

임시 값을 일부 갖는 함수를 호출하려면 먼저 변수에 임시 값을 저장하고 이 변수를 함수에 전달해야 한다.

벡터 및 행렬과 같이 더 큰 자료 구조들은 비용이 비싼 복사 연산을 피하고자 거의 항상 레퍼런스에 의한 전달을 사용한다.

double two_norm(vector& v) { ... }
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.