在C中,当有变量(假设两者都小于int)时,我们可以使用等式 ij
i^=j^=i^=j
Run Code Online (Sandbox Code Playgroud)
交换两个变量的值.例如,让int i = 3,j = 5; 经过计算i^=j^=i^=j,我有i = 5,j = 3.
但是,如果我使用两个int指针重新执行此操作*i^=*j^=*i^=*j,使用上面的示例,我将拥有i = 0和j = 3.
int i=3, j=5;
i^=j^=i^=j; // after this i = 5, j=3
Run Code Online (Sandbox Code Playgroud)
int i = 3, j= 5;
int *pi = &i, *pj = &j;
*pi^=*pj^=*pi^=*pj; // after this, $pi = 0, *pj = 5
Run Code Online (Sandbox Code Playgroud)
在JavaScript中
var i=3, j=5;
i^=j^=i^=j; …Run Code Online (Sandbox Code Playgroud)