강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

킴주니님의 프로필 이미지
킴주니

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

배열 기초

배열에서 참조부분 질문드립니다

작성

·

166

0

Statinfo& monster_2 = *(monsters + 2);

monster_2.hp = 300;

monster_2.attack = 6;

monster_2.defence = 2;

 

이 부분에서 왜 포인터와 달리 *을 사용해야하는건지 이해가

잘 안갑니다 포인터는 주소를 담는 바구니이니

monster + n만해도 되는거는 이해가 가는데

참조가 이해가 잘 안갑니다 너무 헷갈리네요 혹시 다시 설명 해주실 수 있으실까요?? 주소를 참조하는 개념이 아닌가요??

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

참조는 내부적으로는 포인터과 동일하게 주소를 참조하지만,
사용 문법은 값을 대입하는 것처럼 사용합니다.
그래서 가끔 별칭이라고도 표현을 하지요.

monster+n을 하면 여전히 주소값이 있는데,
주소값은 포인터에다가 = 을 통해 넣어줄 수는 있으나
참조에다가는 넣어줄 수 없어 *을 통해 원본 값을 복사하듯 갖고와야 합니다.
하지만 내부적으로는 결국 그 값의 주소값을 넣어주는 것이, 포인터와 작동 원리는 동일합니다

 

킴주니님의 프로필 이미지
킴주니

작성한 질문수

질문하기