关于swap函数的各种方法小结

本文详细介绍了C++中实现变量交换的各种swap函数方法,包括使用指针、引用及标准库函数等方式,帮助读者理解不同场景下的swap函数实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己总结了一些swap函数的各种实现方法,供大家参考,因C中没有引用,故建立C++文件。

代码如下:

#include<cstdio>
#include<cstdlib>
#include<algorithm>//调用系统函数需要该文件


/*实参传给形参的是实参的一份拷贝,主程序中实参并没有改变*/
void swap1(int x,int y)
{
    int temp=0;
    temp=x;
    x=y;
    y=temp;
}
/*只是地址换了,而地址中的内容并没有换*/
void swap2(int *x,int *y)
{
    int *temp=0;
    temp=x;
    x=y;
    y=temp;
}
/*可以实现交换,因为地址中的内容变了*/
void swap3(int *x,int *y)
{
    int temp=0;
    temp=*x;
    *x=*y;
    *y=temp;
}
/*可以交换,地址中的内容实现了交换*/
void swap4(int x[],int y[])
{
    int temp=0;
    temp=x[0];
    x[0]=y[0];
    y[0]=temp;
}
/*可以交换,地址指向的内容发生了交换*/
void swap5(int x[],int y[])
{
    int temp=0;
    temp=*x;
    *x=*y;
    *y=temp;
}
/*可以交换,传引用,实参只有一份,并不复制,形参交换,实参也交换*/
void swap6(int &x,int &y)
{
    int temp=0;
    temp=x;
    x=y;
    y=temp;
}
int main()
{
    int a=1;
    int b=2;
    printf("original:a=%d,b=%d\n",a,b);
    swap1(a,b);
    printf("swap1:a=%d,b=%d\n",a,b);
    a=1;b=2;
    swap2(&a,&b);
    printf("swap2:a=%d,b=%d\n",a,b);
    a=1;b=2;
    swap3(&a,&b);
    printf("swap3:a=%d,b=%d\n",a,b);
    a=1;b=2;
    swap4(&a,&b);
    printf("swap4:a=%d,b=%d\n",a,b);
    a=1;b=2;
    swap5(&a,&b);
    printf("swap5:a=%d,b=%d\n",a,b);
    a=1;b=2;
    swap6(a,b);
    printf("swap6:a=%d,b=%d\n",a,b);
    a=1;b=2;
    std::swap(a,b);//调用系统函数,可以交换
    printf("swap:a=%d,b=%d\n",a,b);
    return 0;
}

相信大家看了后会对swap函数有一个清晰的认识了吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值