第一種:利用指針進行交換
#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;
}