-3
변수 3을 유지하고 다른 변수 5를 유지한다고 가정 해 봅시다. 다른 변수없이 값을 전환해야합니다. 내가 어떻게 해?두 개의 정수를 교환하는 방법
변수 3을 유지하고 다른 변수 5를 유지한다고 가정 해 봅시다. 다른 변수없이 값을 전환해야합니다. 내가 어떻게 해?두 개의 정수를 교환하는 방법
는 그것은 bitwise XOR을 사용하여 수행 할 수 있습니다 :
x ^= y;
y ^= x;
x ^= y;
이것은로 알려져 XOR swap algorithm (Wikipedia 기사는 이것이 어떻게 작동하는지에 대한 내용이수록되어, 그래서 당신이 그것을 읽으십시오 것을).
int tmp = x;
x = y;
y = tmp;
이 왜 그렇게해야합니다 :
그러나, 이것은 특히 이해할 수없는 거의 모든 상황에서 임시 변수가 선호 될 것이다 사용하므로, (그것은 단지 정수형에서 작동 말할 것도없고) 별도의 변수를 사용하지 않고? 난 복잡한 코드를 작성하는 것 이외에는 그 어떤 이유도 볼 수 없다. 확실히 현실 세계의 문제는 아닙니다. –
어떻게하지 ** **? 요다에게 묻습니다. 그건 그렇고, 구글, 또는 좋은 오래된 일반적인 Wikipeadia의 검색 finction 당신에게 좋은 철저한 대답을 굴복했을 것이다 ... – ppeterka
낮은 메모리 칩에 대한 XOR 스왑 이디엄. 그러나 성숙한 컴파일러가이를 최적화 할 것입니다. –