[C语言] 交换变量的3种方法

#include<stdio.h>

void main()
{
    int a = 5, b = 10;
    int temp;
    printf("a = %d, b = %d\n", a, b);

    // 借助中间变量,增加了空间复杂变
    temp = a;
    a = b;
    b = temp;
    printf("a = %d, b = %d\n", a, b);

    // 后面两种方法没有增加空间复杂度,但是时间复杂度较高
    // 借助加减法,可能会出现数据越界
    a = a + b;
    b = a - b;
    a = a - b;
    printf("a = %d, b = %d\n", a, b);

    // 借助异或运算,不会出现数据越界
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    printf("a = %d, b = %d\n", a, b);

    getchar();
}

 

posted @ 2019-08-12 21:08  木子识时务  阅读(1168)  评论(0编辑  收藏  举报