일부 comp-sci 논문과 테스트에서 나는 swap()이 다음과 같이 구현 된 것을 본다 :스왑()이 배열을 전달하여 때때로 구현되는 이유는 무엇입니까?
void swap(int x, int y, int *a)
{
int t = a[x];
a[x] = a[y];
a[y] = t;
}
void swap(int& x, int& y)
{
int t = x;
x = y;
y = t;
}
처음 두 인수에 대한 배열을 인덱싱하지 않아도 됨으로써 코드 클리너를 호출 할 수 있습니까? 우리가 std :: swap()을 사용해야하기 때문에 그것이 중요한 질문이 아니라는 것을 알았지 만 나는 아직도 궁금하다.
Java? 프로그래밍 언어입니까? ;) – ybungalobill
Java의 경우에는 참조에 의한 호출뿐만 아니라 지원되지 않는 중위 포인터입니다. 대부분의 (모든?) 가비지 수집 언어는 GC를 처리 할 혼란이 있기 때문에 금지합니다. 이러한 언어는 자연스럽게 질문에서 첫 번째 스 니펫 스타일로 글을 씁니다. –
@Pascal : C#은'ref' 매개 변수를 지원합니다. –