不通过临时变量实现交换的函数

本文介绍了一种在不使用额外临时变量的情况下交换两个变量值的方法。提供了两种实现方式:一种适用于整数类型,另一种适用于字符类型。通过内联函数提高了函数调用效率。

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

首先是定义成内联函数,提高函数调用效率。以空间换取时间。另外,关键点在函数体内,如何实现参数x和y的相互交换?不用另外定义一个临时变量,通过他们两个的相互计算实现交换是很好的。

即方法一: 

x=x+y;

y=x-y;

x=x-y;

方法二:

*a ^= *b;

*b ^= *a;

*a ^= *b;

好了函数如下

inline void swap(int& x, int& y)
{
         x = x + y;
         y = x - y;
         x = x - y;
}

inline void swap_yingyong(char *a,char *b)
{
	*a ^= *b;
	*b ^= *a;
	*a ^= *b;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值