C++中間変数tempを使用せずに2つの数の値を交換

3674 ワード

#include 
using namespace std;

int main() {
	int a = 2, b = 5;
	cout << "Swap before, value of a, b:" << endl;
	cout << "a: " << a << ", " << "b: " << b << "." << endl;
	swap(a, b);
	cout << "Swap after, value of a, b:" << endl;
	cout << "a: " << a << ", " << "b: " << b << ".";
	return 0;
}

//    temp         
void swap(int &a, int &b) {
	a = a + b;		// a = 2 + 5 = 7
	b = a - b;		// b = 7 - 5 = 2
	a = a - b;		// a = 7 - 2 = 5
}

/*
	b = (a+b)-b = a
	a = (a+b)-a = b
*/