배열에서 참조부분 질문드립니다
181
작성한 질문수 24
Statinfo& monster_2 = *(monsters + 2);
monster_2.hp = 300;
monster_2.attack = 6;
monster_2.defence = 2;
이 부분에서 왜 포인터와 달리 *을 사용해야하는건지 이해가
잘 안갑니다 포인터는 주소를 담는 바구니이니
monster + n만해도 되는거는 이해가 가는데
참조가 이해가 잘 안갑니다 너무 헷갈리네요 혹시 다시 설명 해주실 수 있으실까요?? 주소를 참조하는 개념이 아닌가요??
답변 1
0
참조는 내부적으로는 포인터과 동일하게 주소를 참조하지만,
사용 문법은 값을 대입하는 것처럼 사용합니다.
그래서 가끔 별칭이라고도 표현을 하지요.
monster+n을 하면 여전히 주소값이 있는데,
주소값은 포인터에다가 = 을 통해 넣어줄 수는 있으나
참조에다가는 넣어줄 수 없어 *을 통해 원본 값을 복사하듯 갖고와야 합니다.
하지만 내부적으로는 결국 그 값의 주소값을 넣어주는 것이, 포인터와 작동 원리는 동일합니다
소스코드와 관련하여 질문드립니다
0
79
1
map 컨테이너의 emplace 함수에 대해
0
129
2
시작이 안되네요...!
0
112
2
EAX 명령어 실행 시 RAX의 상위 32비트가 초기화 되는 이유
0
138
1
리틀 엔디안 장점 질문합니다.
0
141
1
메모리 창에 주소를 넣었는데 영어 꺠짐
0
137
1
타입변환#2 build시 knight 인접 stack이 침범당했다는 error가 발생합니다.
0
106
2
map #1 8분 58초 맵은 레드블랙트리로 이루어진 것 같습니다.
1
150
2
hello world 부터 오류 ㅠㅜ
0
209
1
지역변수가 스택? 레지스터
0
143
2
마지막 문제 질문드립니다.
0
173
2
메모리창이 비활성화됩니다.
0
102
1
이중포인터 강좌 부분 질문있습니다.
0
156
1
2를 더하는 이유
0
142
1
메모리 주소 창 엔디안 질문 드립니다. 인프런 봇 답변도 괜찮습니다
1
117
1
해당 코드는 왜 오류가 날까요?
0
165
1
마지막 문제 질문 있습니다.
0
124
1
강의 마지막부분에 질문이 있습니다.
0
201
2
Field초기화
0
149
1
virtual과 override 차이
0
328
2
3:30 참조자 리턴
0
172
1
map 찾기
0
161
1
프로그램 질문드려요
0
265
1
캐스팅 질문
0
144
1





