C++ 引用类型作为函数的形参 (不用第三个数交换两个数)


不用第三个数交换两个数



#pragma 引用类型作为函数的形参


#include <iostream>
using namespace std;

//函数声明
void swap1(int &x,int &y);
void swap2(int &x,int &y);
void swap3(int* x,int* y);


//主函数
int main(){
    //
    int a = 5;
    int b = 8;
   
    cout << "交换之前" << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    
    cout << "引用传值交换之后" << endl;
    //
    swap2(a, b);
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    
    //
    int c = 20;
    int d = 30;
    cout << "地址传值交换之后" << endl;
    swap3(&c, &d);
    cout << "c = " << c << endl;
    cout << "d = " << d << endl;
    
    return 0;
}


#pragma  引用作为参数
//函数定义


//引用传递
void swap1(int &x,int &y){
    //两值交换不用第三个变量
    x = x + y;
    y = x - y;
    x = x - y;
   
}


//异或   相异为1
void swap2(int &x,int &y){
    //两值交换不用第三个变量
    //    x 5  y 3
    x = x ^ y;
    //        0101
    //        0011
    //    -----------
    //    x   0110
    
    y = x ^ y;
    //        0110
    //        0011
    //    ----------
    //    y   0101  5
    
    
    x = x ^ y;
    //        0110
    //        0101
    //    -----------
    //    x   0011  3
    
}



#pragma (指针)地址传递
void swap3(int* x,int* y){
    *x = (*x) + (*y);
    *y = (*x) - (*y);
    *x = (*x) - (*y);
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值