• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

24.04.26 23:12 작성 조회수 47

0

Statinfo& monster_2 = *(monsters + 2);

monster_2.hp = 300;

monster_2.attack = 6;

monster_2.defence = 2;

 

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

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

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

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

답변 1

답변을 작성해보세요.

0

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

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