inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

배열 기초

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

177

킴주니

작성한 질문수 24

0

Statinfo& monster_2 = *(monsters + 2);

monster_2.hp = 300;

monster_2.attack = 6;

monster_2.defence = 2;

 

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

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

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

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

c++

답변 1

0

Rookiss

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

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

 

소스코드와 관련하여 질문드립니다

0

70

1

map 컨테이너의 emplace 함수에 대해

0

112

2

시작이 안되네요...!

0

96

2

EAX 명령어 실행 시 RAX의 상위 32비트가 초기화 되는 이유

0

125

1

리틀 엔디안 장점 질문합니다.

0

131

1

메모리 창에 주소를 넣었는데 영어 꺠짐

0

124

1

타입변환#2 build시 knight 인접 stack이 침범당했다는 error가 발생합니다.

0

94

2

map #1 8분 58초 맵은 레드블랙트리로 이루어진 것 같습니다.

1

138

2

hello world 부터 오류 ㅠㅜ

0

188

1

지역변수가 스택? 레지스터

0

128

2

마지막 문제 질문드립니다.

0

163

2

메모리창이 비활성화됩니다.

0

98

1

이중포인터 강좌 부분 질문있습니다.

0

145

1

2를 더하는 이유

0

133

1

메모리 주소 창 엔디안 질문 드립니다. 인프런 봇 답변도 괜찮습니다

1

110

1

해당 코드는 왜 오류가 날까요?

0

154

1

마지막 문제 질문 있습니다.

0

119

1

강의 마지막부분에 질문이 있습니다.

0

190

2

Field초기화

0

140

1

virtual과 override 차이

0

314

2

3:30 참조자 리턴

0

167

1

map 찾기

0

158

1

프로그램 질문드려요

0

260

1

캐스팅 질문

0

138

1