C语言交换两个变量值(无需第三个参数)示例

在很多情况下,程序员需要交换两个变量的值。 在这里,我们将学习如何交换两个整数变量的值,这可以交换任何类型的值。 变量之间的值可以通过两种方式进行交换:

  1. 借助第三个(temp)变量
  2. 不使用任何临时变量

我们已经学会了第一种方法。 这里将学习第二种方法。虽然它看起来像一个魔法,但它只是一个小技巧。 想象一下,现在我们有两个数字12分别存储在变量ab中 -

如果相加变量ab,即(1 + 2)并存储到a,则a将变为3b仍然为2
现在从a(3)的新值中减去b(2),并将其存储到b,那么a仍然是3b变成1

注意:变量a现在的值是:1

现在,我们从3中减去b的具有新值1,并将其存储到b(a = 3 - 1),然后变量a的值变成2。最后得出结论 - 两个变量的值被交换。

偌实现

C语言实现上述算法应该是这样的 -

#include <stdio.h>

int main() {
   int a, b;

   a = 11;
   b = 99;

   printf("Values before swapping - \n a = %d, b = %d \n\n", a, b);

   a = a + b;  // ( 11 + 99 = 110)
   b = a - b;  // ( 110 - 99 = 11)
   a = a - b;  // ( 110 - 11 = 99)

   printf("Values after swapping - \n a = %d, b = %d \n", a, b);
}

执行上面示例代码,得到以下结果 -

Values before swapping -
 a = 11, b = 99                                         

Values after swapping -
 a = 99, b = 11

上一篇: C语言比较三个整数示例 下一篇: C语言循环示例