黑马程序员-- C语言交换两个整数变量值几种函数比较

总结了C语言中几种交换两个整数数值的函数,欢迎交流

#include <stdio.h>

使用多种交换变量值的函数比较

方法一:使用第三方临时变量 这种函数a,b只是值传递,实质上不能修交换部两个变量的值,只能内部交换两个变量的值

void valueExchange01(int a, int b)

{

    printf("a = %d,b = %d\n",a,b);   // 交换前

    int temp=0;

    temp = a;

    a = b;

    b = temp;

    printf("a = %d,b = %d\n",a,b); // 交换后

}

方法二:不使用第三方变量,仅使用+-运算符,实质上同样不能交换外部两个变量的值,只能内部交换两个变量的值

void valueExchange02(int a, int b)

{

    printf("a = %d,b = %d\n",a,b); // 交换前

    a = b - a;

    b = b - a;

    a = a + b;

    printf("a = %d,b = %d\n",a,b);  // 交换后

}

方法三:使用指针  这个函数是将两个外部变量的地址传进来,然后交换这两个变量的存储空间,实现了外部变量的值的真正交换

void valueExchange03(int *value1,int *value2)

{

    int temp = *value1;

    *value1 = *value2;

    *value2 = temp;

}

方法四:使用异或^ 下面函数同样不能交换外部两个变量的值,只能是内部交换两个变量的值

void valueExchange04(int a,int b)

{

     a = a^b;

     b = a^b;

     a = b^a;

}

posted @ 2014-05-04 14:40  黑马--刘元明  阅读(499)  评论(0)    收藏  举报