C++ 참조

오현진·2024년 6월 15일

C++ 

목록 보기
12/26

참조

  • 참조(reference)는 변수의 메모리 주소를 가리키는 방법 중 하나입니다.
  • 참조는 특정 변수에 대한 또 다른 이름을 제공하며, 그 변수의 메모리 위치를 가리킵니다.
  • 이를 통해 참조를 사용하면 실제 데이터를 복사하지 않고도 원본 데이터에 접근할 수 있습니다.

참조의 특징

  1. 주소 가리킴: 참조는 특정 변수의 메모리 주소를 가리킵니다.
  2. 초기화 필요: 참조는 선언과 동시에 초기화되어야 합니다.
  3. 불변성: 참조는 한 번 특정 변수에 바인딩되면 다른 변수로 변경할 수 없습니다.
  4. 간단한 문법: 포인터와 달리 참조는 & 기호를 사용하여 간단하게 사용할 수 있습니다.

참조 효율성:

  • 문자열을 함수로 전달할 때, 참조를 사용하면 실제 문자열을 복사하지 않고 원본 문자열에 대한 참조만 전달합니다.
  • 이렇게 하면 메모리와 CPU 시간을 절약할 수 있습니다. 큰 문자열을 함수로 전달할 때 특히 유용합니다.

예시

#include <iostream>

int main() {
    int a = 10;
    int& ref = a;  // ref는 a에 대한 참조입니다.
    
    std::cout << "a: " << a << std::endl;      // 출력: a: 10
    std::cout << "ref: " << ref << std::endl;  // 출력: ref: 10
    
    ref = 20;  // ref를 통해 a의 값을 변경합니다.
    
    std::cout << "a: " << a << std::endl;      // 출력: a: 20
    std::cout << "ref: " << ref << std::endl;  // 출력: ref: 20
    
    return 0;
}

위 예시에서 ref는 a에 대한 참조입니다.
ref를 통해 a의 값을 읽거나 쓸 수 있습니다.
ref가 a의 주소를 가리키고 있기 때문에, ref를 통해 값을 변경하면 a의 값도 변경됩니다.

함수에서 참조 사용

함수의 매개변수로 참조를 사용하는 것은 특히 유용합니다.
아래는 참조를 사용하여 함수가 인수로 전달된 값을 변경하는 예제입니다.

#include <iostream>

void increment(int& num) {
    num++;  // num이 참조하는 변수의 값을 증가시킵니다.
}

int main() {
    int a = 10;
    increment(a);  // a의 값을 참조로 전달합니다.
    std::cout << "a: " << a << std::endl;  // 출력: a: 11
    
    return 0;
}

이 예시에서 increment 함수는 num이라는 정수에 대한 참조를 매개변수로 받습니다.
함수 내부에서 num을 증가시키면 a의 값도 증가합니다.
이는 참조가 a의 메모리 주소를 가리키고 있기 때문입니다.

0개의 댓글