#include <iostream>
using namespace std;
void Swap1(int &a, int &b) { a = a + b - (b = a); }
int main(){
int a = 4, b = 5;
cout << "before swap: ";
cout << "a = " << a << ", b = " << b << endl;
Swap1(a, b);
cout << "after swap: ";
cout << "a = " << a << ", b = " << b << endl;
return 0;
}
VS 2008下面,Swap1()函数被优化了,没有正确交换两个变量的值,表示不懂。求解释~