我编写这段代码来切换两个没有临时存储的值,它运行良好,但是当我尝试使用相同的样式来做其他事情时,它不能像我预期的那样工作.
`
#include <iostream>
using namespace std;
int main(){
int i=100,j=200;
//expect swich i and j
i=j+i-(j=i);
cout<<i<<" "<<j<<endl;
//expect j=100 and i=300
i=j+(j=i);
cout<<i<<" "<<j<<endl;
}
Run Code Online (Sandbox Code Playgroud)
结果是:
200 100
400 200
Run Code Online (Sandbox Code Playgroud)
那么为什么第二个(j=i)工作呢?
我们可以就这种情况进行讨论吗?没有人会维护这样的代码,包括我.
c++ ×1