前言:
现时朋友们对“c语言交换值”大约比较着重,我们都需要剖析一些“c语言交换值”的相关知识。那么小编在网上收集了一些关于“c语言交换值””的相关知识,希望我们能喜欢,朋友们一起来了解一下吧!void swap(int *x, int *y){ *x = *x ^ *y; *y = *x ^ *y; *x = *x ^ *y;}
看起来是不是很晕,其实这里运用到了一些高等代数的知识
对于任意向量x,y,z有三条以下成立的运算法则,
1.x^x=0,任一向量与自身互逆
2.x^(y^z)=(x^y)^z,异或运算满足结合律
3.x^y^z=x^z^y,异或运算满足交换律
到这里,如果你看懂了,相信就能一下子明白上面那三行诡异的代码能实现数值交换。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。