c++交换两个数的位置
时间: 2024-09-18 12:00:57 浏览: 51
在C++中,交换两个变量的值可以使用临时变量、算术运算,或者直接赋值的方式。以下是三种常见的方法:
**1. 使用临时变量**
```cpp
int a = 5, b = 10;
int temp = a; // 创建一个临时变量存储a的值
a = b; // 将b的值赋给a
b = temp; // 将临时变量的值(原a的值)赋给b
```
**2. 算术运算**
这种方法主要用于整数类型,因为可以直接通过减法和加法操作完成交换:
```cpp
int a = 5, b = 10;
a = a + b; // a现在变为15
b = a - b; // b变为5,此时a变为10
a = a - b; // a恢复为原来5的值
```
注意:对于浮点数,可能会有精度损失。
**3. 直接赋值**
也可以使用位运算,但这通常只适用于数值较小并且不需要保留原始数据精确性的场合,而且对于非整型数据无效:
```cpp
union {
int i;
char c[sizeof(int)]; // 对于整型,假设c数组长度足够
} swap;
swap.i = a;
a = swap.i;
swap.i = b;
b = swap.i;
```
阅读全文