/*
3:不用第三个变量,而引入第三个数据的方法,就是加减乘除法。但是要注意!变量数值较大时可能会溢出。
*/
a = a+b; //a+b => a
b = a-b; //(a+b)-b => b
a = a-b; //(a+b)-((a+b)-b) => a
/*
3.1:
*/
a = a-b;
b = a+b;
a = b-a;
/*
3.2:用这种方法时又多了一个限制:b不能为0。
*/
a = a*b;
b = a/b;
a = a/b;
/*
4:加减乘除赋值混合法~简直像和稀泥ಥ_ಥ
*/
a = b + (b = a)*0;
/*
这是充分利用运算符的优先级别和顺序做出来的,首先要了解两件事。
赋值运算符的优先级别是很低的,并且运算顺序是从右至左。
也就是说b = a + ( a = b ) * 0会先算右边的a + ( a = b ) * 0。
加法运算符的优先级别比赋值运算高,并且运算顺序是从左至右。
所以a + ( a = b ) * 0会先计算左边的a,然后再计算( a = b ) * 0,就是这个顺序使得a的值可以暂存。
剩下的事情就是把a=b这个表达式的值给消掉了,方法也很简单。
*/
/*
4.1:
*/
a = a + b - (b = a);
/*
5:加减乘除还能组合出很多好玩的方法~
*/
a = a-b; //a-b=>a
b = a+2*b; //(a-b)+(b+b)=a+b=>b
b = (a+b)/2; //((a-b)+((a-b)+(b+b)))/2=a=>b
a = b-a; //a-(a-b)=b=>a