C语言交换两个变量的值

  交换a,b变量的值,最简单的方法,创建中间中间变量c,先把a的值存在c里,然后把b的值放入a内,最后把c中的值赋给a,就完成了a,b变量值的交换。代码如下:
#include <stdio.h>
//利用中间变量交换两个变量值
int main()
{
    int iv = 0, a = 3, b = 7;
    printf("交换前a=%d b=%d\n", a,b);
    iv = a;
    a = b;
    b = iv;
    printf("交换后a=%d b=%d ", a,b);
    return 0;
}
   如果不使用中间变量,我们可以利用异或运算来实现两个变量值的交换。比如变量a=3,b=7,我们利用异或运算来交换a和b的值,运算过程如下:

a ——– 0011 (十进制的3)
b ——– 0111 (十进制的7)
a^b —– 0100 (十进制的4)

   此时再用a^b的结果【0100】异或a【0011】则得到【0111】即7,同理可以得到【0011】即3。
   于是,我们可以先使a=a^b(执行此条语句后a=4,b=7),再使b=a^b(执行此条语句后a=4,b=3),最后使a=a^b(执行此条语句后a=7,b=3),这时就完成了变量a,b值的交换。具体代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//利用异或运算交换两个变量值
int main()
{   
    int a = 3, b = 7;
    printf("交换前a=%d b=%d\n", a, b);
    a = a^b;
    b = a^b;
    a = a^b;
    printf("交换后a=%d b=%d ", a, b);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36391130/article/details/78034611