-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
정렬 함수 만들기 관련 질문
22.08.17 22:07 작성 조회수 259
0
- 정렬 함수 만드는 과정에서 Swap부분을 이용하는 대신 저는 참조를 사용하여 변형하고 싶었습니다. 보이는 사진처럼 진행하였으나 올바른 값이 나오지 않는데 왜 그런지 모르겠습니다.
답변을 작성해보세요.
0
Rookiss
지식공유자2022.08.17
참조에 대한 이해가 잘못되었습니다.
참조는 포인터처럼 주소값을 들고 있는 것이라 생각하시면 됩니다.
best와 i 인덱스 안에 있는 값을 뒤바꾸려고 시도하는 와중,
그 중간 과정으로 temp에다 임시적으로 numbers[best]의 값을 저장하는 것인데요.
int& temp = numbers[best]을 하면 숫자가 아닌 주소값을 저장하게 됩니다.
즉 100을 저장하는게 아니라 numbers[best]라는 곳의 주소를 저장하고,
추후 numbers[i] = temp; 를 하게 되면
보관해둔 주소 안에 있는 값을 numbers[i]에다 넣게 되겠죠.
그러나 중간에 numbers[best] = numbers[i]를 통해 이미 100이라는 값이 200으로 덮어써진 상태이므로
100이라는 값의 존재는 모두가 잊은채로 증발된 상황입니다.
그림을 그려가면서 다시 이해를 해보시고
포인터/참조를 이해하지 못하면 C++은 영영 작업이 불가능하니 더 고민해보시기 바랍니다.
답변 1