2013-10-05 4 views
-3

변수 3을 유지하고 다른 변수 5를 유지한다고 가정 해 봅시다. 다른 변수없이 값을 전환해야합니다. 내가 어떻게 해?두 개의 정수를 교환하는 방법

+4

이 왜 그렇게해야합니다 :

그러나, 이것은 특히 이해할 수없는 거의 모든 상황에서 임시 변수가 선호 될 것이다 사용하므로, (그것은 단지 정수형에서 작동 말할 것도없고) 별도의 변수를 사용하지 않고? 난 복잡한 코드를 작성하는 것 이외에는 그 어떤 이유도 볼 수 없다. 확실히 현실 세계의 문제는 아닙니다. –

+0

어떻게하지 ** **? 요다에게 묻습니다. 그건 그렇고, 구글, 또는 좋은 오래된 일반적인 Wikipeadia의 검색 finction 당신에게 좋은 철저한 대답을 굴복했을 것이다 ... – ppeterka

+1

낮은 메모리 칩에 대한 XOR 스왑 이디엄. 그러나 성숙한 컴파일러가이를 최적화 할 것입니다. –

답변

1

는 그것은 bitwise XOR을 사용하여 수행 할 수 있습니다 :

x ^= y; 
y ^= x; 
x ^= y; 

이것은로 알려져 XOR swap algorithm (Wikipedia 기사는 이것이 어떻게 작동하는지에 대한 내용이수록되어, 그래서 당신이 그것을 읽으십시오 것을).

int tmp = x; 
x = y; 
y = tmp; 
관련 문제