Moon_B 게임개발 공부 업적
[C++] 포인터와 참조의 차이 알아보기 본문
🟢 참조 (Reference)
“그냥 원본에 또 다른 이름 하나 붙여준 것”
- 원본 데이터의 별명이에요.
- 참조 자체가 별도의 메모리 공간을 차지하지 않아요.
- 그래서 주소도 원본과 완전히 같아요.
- 사용하기 간단하고 안정적이죠.
int a = 10;
int& r = a; // r은 a의 또 다른 이름
r = 20; // a도 20이 됨
🔵 포인터 (Pointer)
“주소를 저장하는 변수. 원본을 간접적으로 다룸”
- 원본 데이터의 주소를 값으로 저장하고 있어요.
- 포인터 자체는 메모리 상에서 별도의 공간을 차지합니다.
- 원본을 다룰 때는 *p처럼 역참조해야 합니다.
- 더 유연하지만, 실수할 여지도 많아요 (ex. null pointer, dangling pointer 등)
int a = 10;
int\* p = &a; // p는 a의 주소를 저장
\*p = 20; // a도 20이 됨
🧠 결론적으로
- 참조는 "같은 사람에게 별명 붙이기"
- 포인터는 "그 사람의 주소를 쪽지에 적어두고 나중에 찾아가는 느낌"
이 비유를 기억하시면 진짜 안 헷갈릴 거예요 😊