c++ 交换变量实践



#include <stdio.h>
#include<iostream>
using namespace std;

//c++的引用 实现交换变量
void swap(int &a, int &b)
{
    int temp = a;
    a = b;
    b = temp;
}


//通过指针实现交换变量
void  swap1(int *i, int *j) {
    int t = *i; //将*i(a)的数值赋值给t
    *i = *j;    //*将j(b)的数值赋值给i(&a)所指向的内存空间
    *j = t; //*将t的数值赋值给j(&b)所指向的内存空间
}


//这里是只是交换指针,不会交换变量的值
void  swap2(int *i, int *j) {
    int *t=i ;


     i = j;
     j = t;
}


//所有的交换都在swap中,但是这个交换没有返回值,当i,j 交换后,随即释放,不会对原来的值a,b 有任何影响
void  swap3(int i, int j) {
    int t=i ;
    i = j;
    j = t;
}





int main()
{
    int num1 = 10;
    int num2 = 20;
    cout<<num1<<" "<<num2<<endl;

    //swap(num1, num2);
    //swap1(&num1, &num2);
    //swap2(&num1, &num2);
    swap3(num1, num2);
    cout<<num1<<" "<<num2<<endl;
    return 0;
}


posted @ 2022-08-19 22:48  luoganttcc  阅读(28)  评论(0)    收藏  举报