C语言-交换两个数

来源:互联网 发布:php网页修改软件 编辑:程序博客网 时间:2024/04/30 09:18

方法一:使用临时变量

  1. void exchange(int *a, int *b)  
  2.  
  3.     int temp 0;  
  4.     temp *a;  
  5.     *b *a;  
  6.     *a temp;  
  7.  

方法二:不使用临时变量

  1. void exchange(int *a, int *b)  
  2.  
  3.     *a *a *b;//大数时会出现溢出,但不影响最后交换结果
  4.     *b *a *b;  
  5.     *a *a *b;  
  6.  

另外一种使用异或操作的

  1. void exchange(int *a, int *b)  
  2.  
  3.     *a ^= *b  
  4.     *b ^= *a  
  5.     *a ^= *b  
  6.  

 

比上面更简单的,可以写成一句话

 *a ^= *b^= *a ^= *b;

还有用汇编实现的:

  1. int 12, y= 19;  
  2. _asm  
  3.  
  4.     push x;   
  5.     push y;   
  6.     pop x;   
  7.     pop y;   
  8.   
  9. printf("x is %d, is %d /n"x,y); 

原创粉丝点击