关于两个变量值互换问题

搞一个临时变量直接交换

int t = a;
a = b;
b = t;

异或运算交换两个数

*begin ^= *end;

    *end ^= *begin;

    *begin ^= *end;

写成一句:

    *begin ^= *end ^= *begin ^= *end;

java:

a = (b ^= a ^= b) ^ a; 

运算交换

a=a+b;b=a-b;a=a-b;



用 std::reverse 颠倒一个区间

void reverse_by_std(char* str, int n)

{

  std::reverse(str, str + n);

}


关于两个变量值互换问题
参考文章:
陈硕 (用异或来交换两个变量是错误的) : http://blog.csdn.net/solstice/article/details/5166912

 RednaxelaFX (又一面试题,又一伪命题) : http://rednaxelafx.iteye.com/blog/134002


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值