第一种:利用指针进行交换
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
void swap(int *a, int *b){
int p;
p = *a;
*a = *b;
*b = p;
}
int main(int argc, char const *argv[])
{
int a = 3, b = 2;
swap(a, b);
printf("%d %d\n", a, b);
return 0;
}
第二种:使用位运算进行交换
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
void swap(int &a, int &b){
a ^= b ^= a ^= b;
}
int main(int argc, char const *argv[])
{
int a = 3, b = 2;
swap(a, b);
printf("%d %d\n", a, b);
return 0;
}
第三种:使用加减法进行交换
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
void swap(int &a, int &b){
a = a + b;
b = a - b;
a = a - b;
}
int main(int argc, char const *argv[])
{
int a = 3, b = 2;
swap(a, b);
printf("%d %d\n", a, b);
return 0;
}