相关疑难解决方法(0)

切换两个没有临时存储的值

我编写这段代码来切换两个没有临时存储的值,它运行良好,但是当我尝试使用相同的样式来做其他事情时,它不能像我预期的那样工作.

                `     
 #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
推荐指数
2
解决办法
350
查看次数

标签 统计

c++ ×1