文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>不用临时变量交换数的值

不用临时变量交换数的值

时间:2010-07-18  来源:guocai_yao

 

#include <stdio.h>

void swap1(int *a, int *b);
void swap2(int *a, int *b);
void swap3(int *a, int *b);

int main()
{
    int a = 2;
    int b = 6;

    printf("Before swap, a = %d, b = %d\n", a, b);

    swap1(&a, &b);
    printf("First swap, a = %d, b = %d\n", a, b);
    
    swap2(&a, &b);
    printf("Second swap, a = %d, b = %d\n", a, b);
    
    swap3(&a, &b);
    printf("Third swap, a = %d, b = %d\n", a, b);
    return 0;
}

void swap1(int *a, int *b)
{
    *a = *a ^ *b;
    *b = *a ^ *b;    //*b = *a ^ *b = (*a ^ *b) ^*b = *a ^ (*b ^ *b) = *a ^ 0 = *a;

    *a = *a ^ *b;    //*a = *a ^ *b = (*a ^ *b) ^*a = (*a ^ *a) ^*b = 0 ^ *b = *b;

}

void swap2(int *a, int *b)
{
    *a = *a + *b;
    *b = *a - *b;
    *a = *a - *b;
}

void swap3(int *a, int *b)
{
    *a = *a + *b - (*b = *a); //*b=*a是一个复试表达式,它除了将*a赋给*b外,它本身可以当作一个数,这个数的值就是*a.

}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载