什么是用于交换2个整数变量的C代码

本文关键字:变量 代码 整数 2个 用于 交换 什么 | 更新日期: 2023-09-27 18:24:19

可能重复:
XOR变量交换是如何工作的
在不使用第三个变量的情况下交换两个变量的值

如何在不使用任何额外变量的情况下编写C代码来交换2个整数变量?

什么是用于交换2个整数变量的C代码

  a = a^b;
  b = a^b;
  a = a^b;

使用XOR(^)运算符
你可以添加:

x = x + y;
y = x - y;
x = x - y;

但我认为XOR是最好的方法,因为它更快
这是一个类似于&|的按位运算符
1^1==0
0^0==0
1^0==1
0^1==1
您可以阅读此以获取更多信息

a = a^b;
b = a^b;
a = a^b;

只需使用XOR运算符即可。只是为了解释

XOR(异或)此操作在两个位(a和b) 。如果两个位中的任何一个为1,但在两者都是。存在,如果两者都不等于1,则结果为0。

例如

a=5; //011
b=6; //100
a = a^b; //a=111
b = a^b; //b=011
a = a^b; //a=100