黑马程序员技术交流社区

标题: C语言中交换两个整型变量的值的几种方法 [打印本页]

作者: 后知后觉4778    时间: 2015-12-12 21:39
标题: C语言中交换两个整型变量的值的几种方法
实现两个整数值的交换有三种方式:
1,最简单也最明了的方式,创建一个整型变量,相当于容器,临时存储整数的值
    int a=10,b=23;
    int temp = a;
    a = b;
    b = temp;

    这种方式的优点
         优点:简单明了,可读性强
    缺点:需要定义临时变量用于交换,占用内存
2,这种方式不创建变量,直接通过运算交换两个数的值
    {
        a = b-a;
        b = b-a; // b = b -(b -a) =b-b+a=a;
        a = b+a; // a = b+a = a+b-a =b   
    }
    优点:不用额外定义变量,在一定程度上节省了内存
3,通过位运算及其性质交换两个数的值
        {
        a = a ^ b; //异或运算有个性质,一个数与另外一个数异或两次,不管次序如
        //何,还等于那个数本身
        b = a ^ b; //相当于b = a ^ b ^b =a;
        a = a ^ b; //a = (a^b)^a=b
    }


作者: medicine    时间: 2015-12-12 21:43
最后一个的优点是:显着调调的
作者: 后知后觉4778    时间: 2015-12-12 21:46
最后一个的优点是显着调用的  很好 谢谢补充
作者: pn314754148    时间: 2015-12-12 22:40
后知后觉4778 发表于 2015-12-12 21:46
最后一个的优点是显着调用的  很好 谢谢补充

最后一个的优点听不明白,什么叫显着调用?
作者: 不提也罢    时间: 2015-12-12 22:55
好像是这样




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2