黑马程序员技术交流社区

标题: 交换变量值 [打印本页]

作者: beijingdbm    时间: 2015-5-24 10:17
标题: 交换变量值
如何将两个变量相互交换
作者: beijingdbm    时间: 2015-5-24 10:20
提供两种方法,一种是利用指针,一种是利用引入第三变量

  1. #include <stdio.h>



  2. void  update1(int num1, int num2) {
  3.     int temp = num1;
  4.     num1 = num2;
  5.     num2 = temp;
  6. }

  7. void  update2(int *num1, int *num2) {
  8.     // int *num1 = &n1
  9.     // int *num2 = &n2
  10.    
  11.     int temp = *num1;
  12.     *num1 = *num2;
  13.     *num2 = temp;
  14. }




  15. int main(int argc, const char * argv[]) {
  16.    
  17.     int n1 = 10, n2 = 5;
  18.    
  19.     // update1(num1, num2);
  20.     update2(&n1, &n2);
  21.    
  22.    
  23.    
  24.     printf("%d, %d\n", n1, n2);
  25.    
  26.     return 0;
  27. }



复制代码

作者: 天是蓝色的    时间: 2015-5-24 10:27
共三种方法,一种第三方变量,一种疑或,另一种通过算数运算
作者: 星空眼泪    时间: 2015-5-24 10:34
视频中的又一种很简便的方法
作者: 13673696542    时间: 2015-5-24 10:42
楼上正解,不过没写示例代码,我给补充一下。
第一种方法:
  1. int a, b, c; //其中a,b为要交换的变量,c为中间变量,数据的初始化略过。
  2. c = a;
  3. a = b;
  4. b = c;
复制代码
第二种方法:
  1. a = a ^ b;
  2. b = a ^ b;
  3. a = a ^ b;
复制代码
第三种方法:
  1. a = a + b;
  2. b = a - b;
  3. a = a - b;
复制代码





作者: 李闯    时间: 2015-5-24 11:31
楼上打的 也是我想说的:lol
作者: beijingdbm    时间: 2015-5-24 14:32
都是厉害啊 俺们属于菜鸟的额
作者: 青春印记深圳    时间: 2015-5-24 14:38
楼上正解请看
作者: hui1107464497    时间: 2015-5-25 12:58
受教了啊
作者: 小龙女的萝卜    时间: 2015-5-25 18:21
都是高手大神啊 ,收益匪浅
作者: 小龙女的萝卜    时间: 2015-5-25 18:23
受益匪浅,又复习了下原来的知识




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