您的位置:首页 > 编程语言 > C语言/C++

C++ 中两个数据交换总结

2017-10-26 17:17 148 查看
// 数据交换.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <iostream>

using namespace std;

//采取引用方式

template< typename T>

void EXchange(T & a,T & b)

{

  T c;

  c = a;

  a = b;

  b = c;
}

//采取指针方式(通过指针访问变量)

template< typename T>

void EXchange1(T *p,T *q)

{

   T c;

     c = * p;

   * p = * q;

   * q = c;
}

//采用亦或方式

template < typename T>

void EXchange2(T &a,T &b)

{
a = a ^ b;

        b = a ^ b;
a = a ^ b;

}

//采用标准运算

template < typename T>

void EXchange3(T & a,T & b)

{

        a = a + b;
b = a - b;
a = a - b;

}

//二级指针运算

template < typename T>

void EXchange4(T **m,T **n)

{
T c;
 c = ** m;
**m = ** n;
**n =  c;

}

int _tmain(int argc, _TCHAR* argv[])

{
int a=5,b=6;
EXchange(a,b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;
EXchange1(&a,&b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;

        EXchange2(a,b);
cout<<"a="<<a<<";"<<"b="<<b<<endl;
double p=2.36,q=2.53;
EXchange3(p,q);
cout<<"p="<<p<<";"<<"q="<<q<<endl;
double *m,*n;
m=&p;
n=&q;
EXchange4(&m,&n);
cout<<"p="<<p<<";"<<"q="<<q<<endl;
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: