关于两个变量值互换问题

来源:互联网 发布:js的string是不可变 编辑:程序博客网 时间:2024/05/22 02:27

搞一个临时变量直接交换

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


0 0
原创粉丝点击