龙空技术网

c语言,你可能不知道的数值交换的方式

奶嘴快还我初吻 48

前言:

现时朋友们对“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,异或运算满足交换律

到这里,如果你看懂了,相信就能一下子明白上面那三行诡异的代码能实现数值交换。

标签: #c语言交换值 #c语言交换值的方法