C++中几种不同交换两个数的方法

#include<iostream>
using namespace std;
void swapr(int & a, int &b);
void swapp( int * a, int * b);
void swapv(int a,int b);

int main()
{
    
int a,b;

    cout
<<"请输入a"<<endl;
    cin
>>a;
    cout
<<"请输入b"<<endl;
    cin
>>b;

    cout
<<"交换前"<<endl;
    cout
<<"a = "<<a<<endl;
    cout
<<"b = "<<b<<endl;

    cout
<<"使用引用交换"<<endl;
    swapr(a,b);
    cout
<<"a = "<<a<<endl;
    cout
<<"b = "<<b<<endl;


    cout
<<"使用指针交换"<<endl;
    swapp(
&a,&b);
    cout
<<"a = "<<a<<endl;
    cout
<<"b = "<<b<<endl;

    cout
<<"使用值交换"<<endl;
    swapv(a,b);
    cout
<<"a = "<<a<<endl;
    cout
<<"b = "<<b<<endl;





    
return 0;
}





    
void swapr(int & a, int &b)
    
{
        
int temp;
        temp 
= a;
        a 
= b;
        b 
= temp;
    }

 

    
void swapp( int * a, int * b)
    
{
        
int temp;
        temp 
= *a;
        
*= *b;
        
*= temp;
    }


    
void swapv(int a,int b)
    
{
        
int temp;
        temp 
= a;
        a 
= b;
        b 
= temp;
    }
我们可以发现使用值传递并不能交换两个数

posted on 2008-02-01 13:22  浴盆  阅读(2244)  评论(0编辑  收藏  举报

导航