C++不用第3个变量将变量a和变量b交换
时间: 2024-10-17 16:04:41 浏览: 21
深入理解C++编程中的局部变量和全局变量
在C++中,可以利用数学运算的特点,即两个数相加等于第三个数加上它们本身的和减去第三个数,来实现不使用额外变量交换变量a和变量b的值。这种方法被称为“双指针”或“异或操作”。以下是代码示例:
```cpp
#include <iostream>
void swapWithoutThirdVariable(int& a, int& b) {
a = a ^ b; // 使用异或操作
b = a ^ b; // 将a的原值赋给b
a = a ^ b; // 再次异或将b的新值赋回a,恢复原始的a
}
int main() {
int a = 5, b = 10;
std::cout << "Before swapping: a = " << a << ", b = " << b << std::endl;
swapWithoutThirdVariable(a, b);
std::cout << "After swapping: a = " << a << ", b = " << b << std::endl;
return 0;
}
```
阅读全文