不用中间变量交换两个变量值

方法1.

int a=10,b=5;

a=a+b;           //a=15,b=5

b=a-b;          //a=15,b=10

a=a-b;          //a=5,b=10

缺点:容易溢出。

void Swap(int * a,int * b)

{

  *a=*a+*b;

  *b=*a-*b;

   *a=*a-*b;

}

方法2:

int a=10,b=5;

a=a-b;        //a=5,b=5

b=a+b;       //a=5,b=10

a=b-a;        //a=5,b=10

方法3:

a=a^b;

b=a^b;

a=a^b;

方法4:

int a=10;b=5;

a=a*b;    // a=50,b=5

b=a/b;   //a=50,b=10

a=a/b;   //a=5,b=10

 

posted @ 2013-05-14 09:34  成长的点点滴滴  阅读(114)  评论(0)    收藏  举报