정렬 함수 만들기 관련 질문
377
작성한 질문수 27
- 정렬 함수 만드는 과정에서 Swap부분을 이용하는 대신 저는 참조를 사용하여 변형하고 싶었습니다. 보이는 사진처럼 진행하였으나 올바른 값이 나오지 않는데 왜 그런지 모르겠습니다.
답변 1
0
참조에 대한 이해가 잘못되었습니다.
참조는 포인터처럼 주소값을 들고 있는 것이라 생각하시면 됩니다.
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++은 영영 작업이 불가능하니 더 고민해보시기 바랍니다.
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
0
546
1
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
0
445
1
strcpy() 구현 관련 질문
0
518
1
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
0
460
1
클래스 타입의 포인터 질문합니다
0
549
1
입력값을 enum 값에 넣어주는거 이제 막혔나요?
0
501
1
템플릿 특수화 관련 질문
0
387
1
포인터 관련 질문합니다!
0
267
1
Unable to start assembler. Check your settings.
0
838
2
cpu선택
0
543
1
포인터 질문이 있습니다
0
330
1
20:35 에서 구조체 크기에 대한 질문입니다!
0
588
1
iterator 삭제관련
0
410
1
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
0
315
1
15 분 45초 대 질문
0
312
0
스택 프레임 질문합니다!
2
308
1
오른값 참조 in 게임
0
387
0
동적할당 질문이 있습니다
0
452
1
안녕하세요 메모리에 대해 질문드립니다.
0
309
1
함수객체 의 매개변수
0
365
1
복사생성자
0
438
1
main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요
0
425
1
포인터 실습 강의를 보고 궁금한게 있습니다.
0
358
1
스택 오버플로우
2
793
1





