C++交換兩個值的三種方法

第一種:利用指針進行交換

#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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章