Qt_C++交换两个数

举报
DreamLife 发表于 2022/04/16 00:37:45 2022/04/16
【摘要】 在编程过程中,交换两个数是我用常用的 ,这里做下简单的搬运 bool Widget::swap(int a, int b) { int temp =a; a= b; b = te...

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

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

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这样才是改变了ab的值

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

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

第三种,位运算

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

欢迎补充。。。。

这里写图片描述

文章来源: dreamlife.blog.csdn.net,作者:DreamLife.,版权归原作者所有,如需转载,请联系作者。

原文链接:dreamlife.blog.csdn.net/article/details/50969148

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。