zoukankan      html  css  js  c++  java
  • 不用第三个变量交换两个参数值

    问题描述:编写一个函数swap,输入两个参数a, b,要求函数中不能够使用第三个变量,函数输出交换之后的a和b。

    思路:如果程序中不能够使用另外的第三个变量的话,只能够通过所谓的“技巧"来实现。这里使用的技巧如下:a ^ 0 = a. a ^ a = 0(异或运算)

    实现代码:

    #include <stdio.h> 
    #include <stdlib.h> 
    // 交换两个数据,但是不适用第三个变量 
    void swap(int* a, int* b) 

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

    int main() 

    int a = 3; 
    int b = 4; 
    printf("before swap, a = %d, b = %d\n", a, b); 
    swap(&a, &b); 
    printf("after swap, a = %d, b = %d\n", a, b); 
    return 0; 
    }

  • 相关阅读:
    Python Day14
    Python Day13
    Python Day12
    Python Day11
    Python Day10
    Python Day9
    Python Day8
    Python Day7
    Python Day6
    Python Day5
  • 原文地址:https://www.cnblogs.com/kingangWang/p/2676481.html
Copyright © 2011-2022 走看看