用ab相加相减去交换两个变量怎么写?
时间: 2024-10-25 12:12:28 浏览: 16
七年级数学下半学期配套AB测试卷 答案(24套)【新人教版】18精选.doc
在C语言中,如果你想通过异或(XOR)操作来交换两个整数`a`和`b`,因为异或操作的性质(即`a XOR b XOR b == a`), 可以利用这种特性实现无临时变量的交换。这是代码片段:
```c
#include <stdio.h>
void swapWithoutTemp(int* a, int* b) {
*a = *a ^ *b; // 第一步,a = a XOR b
*b = *a ^ *b; // 第二步,b = (a XOR b) XOR b = a
*a = *a ^ *b; // 第三步,a = (a XOR b) XOR a = b
}
int main() {
int x = 5, y = 10;
printf("Before swap: x = %d, y = %d\n", x, y);
swapWithoutTemp(&x, &y); // 通过指针传递给swapWithoutTemp函数
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
```
在这个代码里,我们使用了三个异或操作完成`a`和`b`的交换。
阅读全文