info8995 님의 블로그

25일차(참조자 포인터) 본문

TIL(Today I Learned)/C++

25일차(참조자 포인터)

info8995 2025. 1. 21. 20:59

1. 참조자와 포인터

참조자와 포인터는 모두 변수나 객체를 간접적으로 참조하는 도구이지만, 다음과 같은 차이점이 있습니다:

  • 참조자는 초기화 후에 다른 변수를 참조할 수 없으며 항상 하나의 변수에 묶입니다.
  • 포인터는 변수의 주소를 저장하며, 이를 통해 자유롭게 다른 변수를 가리킬 수 있습니다.

예제 코드

위 코드에서 참조자는 refToA가 원본 값을 직접 조작하지만, 포인터는 *ptrToA를 통해 값을 참조하고 조작합니다.

2. 포인터와 참조자의 비교

참조자 (Reference)

  • 참조자는 초기화 시 특정 변수에 연결되고, 이후에는 다른 변수를 참조할 수 없습니다.
    • 즉, 한 번 참조한 변수와 영원히 연결됩니다.
    • 새로운 주소를 참조하거나 다른 메모리 위치로 이동할 수 없습니다.

포인터 (Pointer)

  • 포인터는 변수의 주소를 저장하기 때문에, 저장된 주소를 자유롭게 변경할 수 있습니다.
    • 즉, 한 번 가리키던 주소를 버리고 다른 변수나 메모리 위치를 재할당할 수 있습니다.
    • 이런 유연성 덕분에 포인터는 여러 메모리를 관리하거나 동적 할당에서 많이 사용됩니다.

예제 코드

 

마무리하며
포인터와 참조자는 C++에서 매우 중요한 개념이지만, 처음 배우는 사람에게는 다소 어렵게 느껴질 수 있습니다. 저 역시 포인터와 참조자의 차이점을 이해하고 활용하는 데 어려움을 겪었고, 이를 극복하기 위해 TIL(Today I Learned) 형식으로 정리하며 학습했습니다. 특히 포인터는 자유도가 높은 만큼 실수할 가능성도 크기 때문에, 앞으로도 꾸준히 연습하며 확실히 이해하고자 합니다. 이번 정리를 통해 기본적인 개념뿐만 아니라 활용법까지 이해하는 데 한 걸음 더 나아갈 수 있었습니다.