C++시작과 문법

참조와 const

복사를 줄이고 함수 인터페이스를 안전하게 만드는 C++ 참조와 `const` 기본 규칙을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

cpp
std::string name = "Mina";
std::string& alias = name;
const std::string& view = name;

설명

  • 참조는 기존 객체의 다른 이름처럼 동작하며, 포인터보다 문법이 간결합니다.
  • T&는 수정 가능한 참조, const T&는 읽기 전용 참조로 자주 쓰입니다.
  • 큰 객체를 함수에 넘길 때 const&를 쓰면 불필요한 복사를 줄일 수 있습니다.
  • 참조는 선언 즉시 초기화해야 하며, 다른 객체를 다시 가리키게 바꿀 수는 없습니다.

짧은 예제

cpp
#include <iostream>
#include <string>

void printName(const std::string& name) {
    std::cout << name << "\n";
}

int main() {
    std::string user = "RefDock";
    printName(user);
}

빠른 정리

항목설명
T&수정 가능한 참조
const T&읽기 전용 참조
복사 절감큰 객체 전달 비용을 낮춤
별칭기존 객체를 다른 이름으로 접근
즉시 초기화선언과 동시에 대상을 정해야 함

주의할 점

지역 변수에 대한 참조를 함수 밖으로 반환하면 수명이 끝난 객체를 가리키게 될 수 있습니다. 참조는 수명과 함께 이해해야 합니다.