Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1614578
  • 博文数量: 441
  • 博客积分: 20087
  • 博客等级: 上将
  • 技术积分: 3562
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-19 15:35
文章分类

全部博文(441)

文章存档

2014年(1)

2012年(1)

2011年(8)

2010年(16)

2009年(15)

2008年(152)

2007年(178)

2006年(70)

分类: C/C++

2006-06-19 15:35:25

方法一:宏实现
#define SWAP(x,y)    \
    {                \
        x = x + y;    \
        y = x - y;    \
        x = x - y;    \
    }


方法二:指针实现
void swap(int* px, int *py)
{
    *px = *px + *py;
    *py = *px - *py;
    *px = *px - *py;
}


方法三:引用实现
void swap(int& rx, int& ry)
{
    rx = rx + ry;
    ry = rx - ry;
    rx = rx - ry;
}

方法四:
void swap(int *x, int *y)
{
     *x = *x ^ *y;
     *y = *x ^ *y;
     *x = *x ^ *y;
}

注:以上四种方法都没有用到中间变量(临时变量)
阅读(823) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~