怎样不用临时变量而交换两个值?
2006-11-07 11:27
246 查看
怎样不用临时变量而交换两个值? 一个标准而古老的汇编程序员的技巧是:
但是这样的代码在现代高级程序设计语言中没什么用处。临时变量基本上是自由使用的, 一般上的三个赋值是:
这不只对读者更清晰, 更有可能被编译器辨别出来而变成最有效的代码 (例如有可能使用 EXCH 指令)。后面的代码明显的可以用于指针和浮点值, 而不象 XOR 技巧只能用于整型。
a ^= b; b ^= a; a ^= b;
但是这样的代码在现代高级程序设计语言中没什么用处。临时变量基本上是自由使用的, 一般上的三个赋值是:
int t = a; a = b; b = t;
这不只对读者更清晰, 更有可能被编译器辨别出来而变成最有效的代码 (例如有可能使用 EXCH 指令)。后面的代码明显的可以用于指针和浮点值, 而不象 XOR 技巧只能用于整型。
相关文章推荐
- 怎样不用临时变量而交换两个变量的值?——看一中文编程语言中的“完美”一例
- 怎样不用临时变量而交换两个值?
- 交换两个整数值,不用临时变量
- 不用临时变量交换两个变量的值
- 交换两个变量而不用临时变量
- C++ 不用临时变量交换两个变量的值——函数对象
- 不用临时变量交换两个变量的值——函数对象
- 不用临时变量,交换两个变量的值
- 交换两个值,不用临时变量(C位运算)
- 不用临时变量,只用11个字符交换两个变量的值——窥视C#编译原理的冰山一角
- 不用临时变量交换两个变量的值
- 用异或运算符实现不用第三个临时变量交换两个变量的值
- 不用临时变量交换两个变量的值
- 交换两个元素的值,不用临时变量
- 使用位运算交换两个值,不用临时变量
- 交换两个值,而不用临时变量
- 不用临时变量交换两个数据
- (1.1.2)C的|、||、&、&&、异或、~、!运算 (交换两个值,不用临时变量)
- 不用临时变量 实现两个变量之间的数据交换
- 常见面试题,交换两个整形变量不用中间变量怎样实现?