c语言交换两个变量的值
时间: 2024-06-12 08:08:56 浏览: 15
在C语言中,有几种方法可以交换两个变量的值。其中常用的方法有使用第三方临时变量、变量自加减和巧用异或位运算。
方法一:使用第三方临时变量
```c
int main() {
int a=10;
int b=20;
printf("交换前:a=%d b=%d\n",a,b);
int tmp=a;
a=b;
b=tmp;
printf("交换后:a=%d b=%d\n",a,b);
return 0;
}
```
方法二:变量自加减
```c
int main() {
int a=10;
int b=20;
printf("交换前:a=%d b=%d\n",a,b);
a=a+b;
b=a-b;
a=a-b;
printf("交换后:a=%d b=%d\n",a,b);
return 0;
}
```
方法三:巧用异或位运算
```c
int main() {
int a=10;
int b=20;
printf("交换前:a=%d b=%d\n",a,b);
a=a^b;
b=a^b;
a=a^b;
printf("交换后:a=%d b=%d\n",a,b);
return 0;
}
```
相关问题
C语言交换两个变量的值并输出
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int a = 10, b = 20;
printf("交换前:a=%d, b=%d\n", a, b);
int temp = a;
a = b;
b = temp;
printf("交换后:a=%d, b=%d\n", a, b);
return 0;
}
```
输出结果为:
```
交换前:a=10, b=20
交换后:a=20, b=10
```
c语言交换两个指针变量的值
交换两个指针变量的值需要使用指向指针的指针。具体步骤如下:
```c
void swap(int **p, int **q) {
int *temp; // 定义一个指向指针的指针
temp = *p;
*p = *q;
*q = temp;
}
int main() {
int a = 1, b = 2;
int *p = &a, *q = &b;
printf("交换前:*p=%d, *q=%d\n", *p, *q);
swap(&p, &q);
printf("交换后:*p=%d, *q=%d\n", *p, *q);
return 0;
}
```
在上面的代码中,`swap` 函数的参数是指向指针的指针,传入 `&p` 和 `&q` 的地址即可。在函数内部,定义一个指向指针的指针 `temp`,将 `*p` 的值赋给 `temp`,再将 `*q` 的值赋给 `*p`,最后将 `temp` 的值赋给 `*q`,完成交换操作。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)