zoukankan      html  css  js  c++  java
  • Qt_C++交换两个数

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

    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;
    }

    欢迎补充。。。。

    这里写图片描述

  • 相关阅读:
    maven 历史版本下载地址
    eclipse 热部署
    在线代码练习
    Intellij热部署插件JRebel
    模拟数据生成器
    电脑读取U盘总提示格式化
    变形金刚
    slamdunk正在做菜
    丧心病狂的计数
    小明在工作
  • 原文地址:https://www.cnblogs.com/DreamDog/p/9160145.html
Copyright © 2011-2022 走看看