黑马程序员技术交流社区

标题: 交换两个数值变量的值的三种方式 [打印本页]

作者: strongfish    时间: 2015-7-15 10:22
标题: 交换两个数值变量的值的三种方式
方式一: 利用第三个变量交换变量的值(适用范围最广).

  1. # include <stdio.h>

  2. int main()
  3. {
  4.         int a, b, t;
  5.         scanf("%d%d", &a, &b);
  6.         t = a;
  7.         a = b;
  8.         b = t;
  9.         printf("%d %d\n", a, b);

  10.         return 0;
  11. }
复制代码

方式二:直接加减法交换两个变量的值(注意:数值的上溢下益. 且, 只有定义了加减法的数据类型才可以这么做)。

  1. # include <stdio.h>

  2. int main()
  3. {
  4.         int a, b;
  5.         scanf("%d%d", &a, &b);

  6.         a = a + b;
  7.         b = a - b;
  8.         a = a - b;

  9.         printf("%d %d\n", a, b);

  10.         return 0;
  11. }
复制代码

方式三:利用^(异或运算符)交换两个变量的值.
(此为方式二的变种, 可简写为 a ^= b ^= a ^= b.
整体来看, 三变量是最通用的! 建议多使用)
  1. # include <stdio.h>

  2. int main()
  3. {
  4.         int a, b, t;
  5.         scanf("%d%d", &a, &b);

  6.         a = a^b;
  7.         b = a^b;
  8.         a = a^b;

  9.         printf("%d %d\n", a, b);

  10.         return 0;
  11. }
复制代码


完。




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