分页: 1 / 1

不使用临时变量交换两个整数

发表于 : 2016年12月29日 17:18
C艹艹
Code: [全选] [展开/收缩] [Download] (Untitled.cpp)
  1. int a = 526;
  2. int b = 793;
  3.  
  4. a = a ^ b;
  5. b = a ^ b;
  6. a = a ^ b;
  7. printf("%d %d\n", a, b);

Re: 不使用临时变量交换两个整数

发表于 : 2016年12月31日 07:31
ccc
Code: [全选] [展开/收缩] [Download] (freebsd-clang-main.cpp)
  1. #include <iostream>
  2.  
  3. int main() {
  4.     int x = 777;
  5.     int y = 221;
  6.     x = x + y;
  7.     y = x - y;
  8.     x = x - y;
  9.     std::clog << x << ", " << y << std::endl;
  10.     std::cin.get();
  11.     return 0;
  12. }


同样没有临时变量,也不需要比特位操作,性能不比比特位低