배열에서 참조부분 질문드립니다
177
작성한 질문수 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
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





