有两个参数 a=10 , b=15;在不引用第3参数的条件下将 a,b的值互换不考虑溢出有如下方法:(1)a = a + b; //a=25,b=15b = a - b; //a=25,b=10a = a - b; //a=15,b=10同样:b = b - a; //a=10 b=10a = a + b; //a=20 b=10b = 2 * b; //a=20 b=20(2)b=a-(a=b)*0或者b=a+(a=b)*0或者a=b+(b=a)*0;(3)a=a*b;b=a/b;a=a/b; 考虑溢出有如下方法:(4)a=a^b;b=a^b;a=a^b;精简点的:a^=b^(b^=a^b);或者a^=b^=a^=b;(5)还有汇编利用堆栈的:push apush bpop bpop a

评论