C语言实现两个数交换的最优方案
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言实现两个数交换的最优方案相关的知识,希望对你有一定的参考价值。
C语言实现两个数交换的最优方案
- 实现方式一:通过指针变量,异或处理
#include <stdio.h>
void swap(int *x, int *y)
{
int temp = (*x) ^ (*y); //设a为临时变量,存储异或值
*y = temp ^ (*y); //相当于b=a
*x = temp ^ (*x); //相当于a=b
}
void main()
{
int a = 33;
int b = 66;
int *pa = &a;
int *pb = &b;
swap(pa, pb);
printf("a= %d ,b = %d \\n", a, b);
}
- 实现方式二: 直接异或运算
#include <stdio.h>
void main()
{
int a = 33;
int b = 66;
a = a ^ b ^ a; //也可以不设置临时变量,因为异或值没有发生变化
b = a ^ b ^ b;
printf("a= %d ,b = %d \\n", a, b);
}
- 实现方式三:通过直接变量,交换数值
#include <stdio.h>
void swap(int *x, int *y)
{
int temp = *x; //设中间临时变量
*x = *y; //相当于b=a
*y = temp; //相当于a=b
}
void main()
{
int a = 33;
int b = 66;
swap(&a, &b);
printf("a= %d ,b = %d \\n", a, b);
}
以上是关于C语言实现两个数交换的最优方案的主要内容,如果未能解决你的问题,请参考以下文章