在编程过程中,交换两个数是我用常用的 ,这里做下简单的搬运

bool Widget::swap(int a, int b)
{
int temp =a;
a= b;
b = temp; }

这种方式其实是没有改变的ab两个参数的值的,只有在函数里面,ab的值是改变的,但是在函数外面,ab的值还是没有改变的

bool Widget::swap_point(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp; }

这样才是改变了ab的值

另外 ,交换两个数的值,大致应该有一下三种方式,注意,这里的形参都是指针(或引用)。

第一种,带有第三个变量的

bool Widget::swap1(int*a,int*b)//第一种,也是最常用的一种
{
intt;
t=*a;
*a=*b;
*b=t;
}

第二种,好像记得回存在数据溢出问题,没有验证过

bool Widget::swap2(int*a,int*b)//第二种,不需要额外的内存空间(不用临时变量)
{
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
}

第三种,位运算

bool Widget::swap3(int*a,int*b)//第三种,不需要额外的内存空间,位运算实现
{
*a^=*b;
*b^=*a;
*a^=*b;
}

欢迎补充。。。。

Qt_C++交换两个数的更多相关文章

  1. c语言实现交换两个数的值

    C语言中要实现交换两个数的值,可以有很多种方法,具体如下所述. 不使用中间变量: // 异或, a^=b^=a^=b; a ^= b; b ^= a; a ^= b; // 加减 a = a + b; ...

  2. 实现pow(int x, int y),即x的y次方 ; 异或交换两个数;

    问题1:实现pow(int x, int y) ,即x的y次方 x的y次方就是有y个x连续乘机,代码如下: #include <stdio.h> #include <stdlib.h ...

  3. C语言交换两个数的值

    #include<stdio.h> int main() { //交换两个数的值 // 方法一 可读性最好 ; ; int temp ; temp = a; a = b; b = temp ...

  4. 20140806 交换两个数 extern “C”用法

    1.交换两个数 方法1.a+b有可能越界 a=a+b; b=a-b; a=a-b; 方法二.不会越界 a=a^b b=a^b; a=a^b;   2.extern "C"用法 ( ...

  5. 几种交换两个数函数(swap函数)的写法和解析

    #include <iostream> using namespace std; /*值传递,局部变量a和b的值确实在调用swap0时变化了,当结束时,他们绳命周期结束*/ void sw ...

  6. java中不创建使用第三方变量,交换两个数的值

    1.直接使用算术运算法交换 先把两个数的和赋值给其中一个,然后做减法.例如num1=num1+num2; 此时num2(交换之后)就等于num1减去num2:废话不多说,直接上代码 public cl ...

  7. 交换两个数-c++实现

    今天看了下交换数值的小程序,网上挺多的,整理了下,,因为参考较多,没一一给出链接,若原作者看到,可以留言,我会添加 // example_1_6_function_swap.cpp : 定义控制台应用 ...

  8. php不用第三个变量,交换两个数的值

    //字符串版本 结合使用substr,strlen两个方法实现 $a="a"; $b="b"; echo '交换前 $a:'.$a.',$b:'.$b.'< ...

  9. c语言函数实现交换两个数的值

    代码: #include <stdio.h> void swap(int x,int y) { int temp; temp = x; x = y; y = temp; printf(&q ...

随机推荐

  1. 【luogu P1536 村村通】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1536 并查集的运用,可以用生成树的思想,就是n个点生成一棵树需要n-1条边.这样我们先把已有的路连接到一个并 ...

  2. Android学习笔记_49_Android中自定义属性(attrs.xml,TypedArray的使用)

    做Android布局是件很享受的事,这得益于他良好的xml方式.使用xml可以快速有效的为软件定义界面.可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了.那么如何才能做到像官方 ...

  3. yarn默认配置

    name value description yarn.ipc.client.factory.class   Factory to create client IPC classes. yarn.ip ...

  4. ng-repeat 指令(带有数组)

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  5. python的格式化输出(format,%)

    皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问 ...

  6. Question 20171114 String的一些问题?

    欢迎各位大神提问题及补充不足和警醒错误! Question 20171113  Java中char为什么占用两个字节? Java是使用Unicode编码的所以Java会将源代码以Unicode的方式编 ...

  7. Unity 游戏框架搭建 (九) 减少加班利器-QConsole

    为毛要实现这个工具? 在我小时候,每当游戏在真机运行时,我们看到的日志是这样的. 没高亮啊,还有乱七八糟的堆栈信息,好干扰日志查看,好影响心情. 还有就是必须始终连着usb线啊,我想要想躺着测试... ...

  8. 动态规划(一)POJ1163

    动态规划算法是比较实用的算法之一,结合实际问题能更好的熟悉这个算法 下面以POJ1163为例子 1. 首先是题目大意 :在给定的一个数字三角形中找到一条自上而下的路径,路径每一步只能左下或者右下,最后 ...

  9. 增删改查 报异常org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readO

    可能是Spring配置文件 事务通知里面的方法  与实际方法不匹配 <tx:advice id="advice" transaction-manager="tran ...

  10. 二、html篇

    1.<br/> 有时css实现换行比较麻烦,可以使用该标签进行换行. 2.<strong></strong>  <ins></ins>  & ...