变量交换
2014-04-27 11:27
134 查看
众所周知,变量交换可以不使用中间变量。
可以这样:
或者这样:
但是这个有个小trap,如果a和b引用同一个变量就会都变成0。
所以,需要先判断a,b是否相等。
可以这样:
void exchange(int &a, int &b){ a^=b^=a^=b; }
或者这样:
void exchange(int &a, int&b){ a = a+b; b = a-b; a = a-b; }
但是这个有个小trap,如果a和b引用同一个变量就会都变成0。
所以,需要先判断a,b是否相等。
相关文章推荐
- (位运算符)请自己实现两个整数变量的交换 ^的特点 (面试题)
- 面试---不增加变量,交换两个数值变量的值
- 三种方法实现不引入变量交换两个变量值
- 交换两个变量的值
- 不借助第三个变量,交换两个变量值的3种方式
- .net学习之C#基础提高 07变量交换__输入
- 不含中间变量的两数交换逻辑
- 用传地址方法交换两个变量的值
- Python中的print、input函数以及Python中交换两个变量解析
- Java交换变量的三种方式、三目运算符、while循环和Dowhile循环
- 不使用中间变量交换两个数值变量的值
- 控件变量和程序成员变量是如何交换数据的?
- 第15周项目 变量交换
- 一些小点------c中两个变量交换的方法
- 交换变量的值的两种有趣方法(位操作与算术法)
- Java 交换两个变量的数值实现方法
- 交换两个变量,而不引用第三个变量.
- 位“异或”运算在变量交换中的应用及与位“或”的逻辑关系
- JAVA_SE基础——46.引用数据类型变量.值交换[独家深入解析]
- 运算符(27)交换两个变量的值(不使用第三个变量法方)