求这个运算的顺序
交换2普通的变量可用一条语句,并且不用第三个变量来搞定,语句如下:
- C/C++ code
a=a+b-(b=a);
求解释这条语句执行时的顺序。
[解决办法]
在C中如何用一条语句且不使用中间变量交换两个变量的值
1、简单法
a = a + b,b = a - b,a = a - b;
2、堆栈
a = 3;b = 5;
__asm{
push a;
push b;
pop a;
pop b;
}
3、使用取非
a^=b^=a^=b;
4、使用逗号表达式
a=(a = a + b, b = a - b, a - b);
[解决办法]
算数运算左结合,先执行a+b,在执行()