C 语言swap(a,b)值交换的几种实现方法

            从学习开始,就开始学习C语言。书本上介绍的swap程序很基础,我在网络上查看了关于swap程序的设计。

有很多,列举了以下四种方法。

//以下是原程序,VC++6.0编译通过。

/************************************
//C 语言swap(a,b)值交换的几种实现方法
************************************/


#include


void swap ( int &a, int &b);


 int main()
{
int a=3; 
int b=5; 
printf("a = %d, b = %d\n",a,b);
swap(a,b);
printf ("Now, swap.....\n");
printf("a = %d, b = %d\n",a,b); 

return 0;
}


void swap ( int &a, int &b)
{
//方法一: 基本方法
/*
int temp = 0;
temp = b;
b = a ;
a = temp;
*/


//方法二: 数学方法
/*
a = a + b;
b = a - b;
a = a - b;
*/


//方法三: 位计算
//注:若参加运算的两个二进制位值相同则为0,否则为1
        //即0∧0=0,0∧1=1,1∧0=1, 1∧1=0
//异或有点绕,可以用笔计算下
//a ^= b ^= a ^= b; 


//方法四:  数学,等式上计算
//计算机赋值规则
a = a + b - ( b = a );

}

你可能感兴趣的:(C语言)