美文网首页
C/C++中不申请第三个变量数值交换的两种方法

C/C++中不申请第三个变量数值交换的两种方法

作者: 我是恐龙_35b2 | 来源:发表于2019-07-17 17:42 被阅读0次

(1)采用数学知识

#include<stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
a = a + b;
b = a - b;
a = a - b;
printf("%d %d\n", a, b);
return 0;
}

(2)利用C语言的位运算符

#include<stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
a = a ^ b;
b = a ^ b;
a = a -^b;
printf("%d %d\n", a, b);
return 0;
}

这个方法还可以进一步简写成 a ^ = b ^ = a ^ = b。其实第二种方法只是第一种方法的一个变种。
这两个方法看起来很好(少用一个变量),但实际上很少使用,因为它的适用范围很窄:只有定义了加减法的数据类型才能采用此方法。事实上,并不推荐采用这样的技巧实现变量交换:三变量法已经足够好,这个例子只是能在特定的场合下使用以及帮助读者提高程序阅读能力。

相关文章

  • C/C++中不申请第三个变量数值交换的两种方法

    (1)采用数学知识 (2)利用C语言的位运算符 这个方法还可以进一步简写成 a ^ = b ^ = a ^ = b...

  • c++ python java

    c++ 初始化 C++类中成员变量的初始化有两种方式 - yu132563的专栏 - CSDN博客 C++ 变量初...

  • [转载] 六种流行的语言---C、C++、python、Java

    参考链接: 在C / C++,Python,PHP和Java中交换两个变量[https://www.imangod...

  • 如何交换两个变量的值

    如何交换变量a和变量b的值? 方法一:引入第三个变量这种方法比较常用,同时适用各种数据类型。以C语言代码为例,介绍...

  • 2018-10-27 027 小贴士 A

    交换元素内容 很多语言中元素交换需要引入暂时变量,或者使用Google算法,C++示例如下: 但是这两种算法都显得...

  • 三种变量的交换方式 详解

    1.利用第三个变量交换数值,简单的方法。 2.可以用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y...

  • JNI--c/c++调用Java方法

    上次说到c/c++调用Java的变量,同样的c/c++也可以调用Java的方法 1.c/c++native方法调用...

  • C++中的新成员

    C++中的动态内存分配 C++中通过new关键字进行动态内存申请 C++中的动态内存申请是基于类型进行的 dele...

  • 内存空间的划分

    一、C/C++中内存区域的划分 1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其...

  • C++中New关键字和命名空间

    动态内存分配 C++中的动态内存分配C++中通过new关键字进行动态内存申请C++中的动态内存申请是基于类型进行的...

网友评论

      本文标题:C/C++中不申请第三个变量数值交换的两种方法

      本文链接:https://www.haomeiwen.com/subject/ivsclctx.html