temp 변수 없이 swap 하기
2019. 10. 16. 22:57ㆍPL/C++
XOR 연산의 의미를 깊게 바라볼 필요가 있다
1. 0과 연산하면 자기 자신이, 1과 연산하면 비트가 반전된다
2. 교환, 결합 법칙이 성립된다
#include <iostream>
using namespace std;
void swap(int* a, int* b) {
*a = *a ^ *b;
*b = *a ^ *b;
*a = *a ^ *b;
}
int main(void) {
int a = 100, b = 5;
cout << a << ' ' << b << '\n';
swap(&a, &b);
cout << a << ' ' << b << '\n';
return 0;
}
'PL > C++' 카테고리의 다른 글
__cplusplus 매크로 의미 (0) | 2019.10.19 |
---|---|
virtual 키워드를 사용해야 하는 이유 (0) | 2019.10.17 |
C6011: NULL 포인터 'var'을 역참조하고 있습니다 에러 해결 (0) | 2019.10.12 |
extern "C" 의미 (0) | 2019.10.06 |
윈도우에서 MySQL 원격 연결 (0) | 2019.09.09 |