您的位置:首页 > 其它

不用中间变量实现交换数据

2014-10-17 09:22 239 查看
第一种方法:使用相加、相减来实现,比如:

           int x=1,y=2; 

           x=x+y; 

           y=x-y; 

           x=x-y;

第二种方法:使用异或运算,比如:

原理就是数字A异或B两次,就得到A。而B被A异或两次,就得到B。

    int x =
1;

    int y
= 2;

    x = x^y;
//x被y异或一次
    y = x^y;
//此时x存放的是x与y的异或,因此相当于被y又异或一次,x被y异或两次,得到x并赋给y
    x = x^y;
//此时x存放的是x与y的异或,而y存放的就是x的值,因此再异或一次y就相当于异或x一次就得到x
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息