博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt_C++交换两个数
阅读量:4578 次
发布时间:2019-06-08

本文共 658 字,大约阅读时间需要 2 分钟。

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

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

欢迎补充。。。。

这里写图片描述

转载于:https://www.cnblogs.com/DreamDog/p/9160145.html

你可能感兴趣的文章
mouseover和mouseenter的区别
查看>>
bzoj 3312 No Change
查看>>
需求分析(团队作业3)
查看>>
希腊字母
查看>>
多线程基础知识(一)
查看>>
FU-A 分包
查看>>
android AsyncTask
查看>>
JAVA8 ConcurrentHashMap 源码分析
查看>>
Codeforces Round #339 (Div. 2) B. Gena's Code
查看>>
贴心的vs 备注提醒功能
查看>>
SQL语句操作文件
查看>>
自我介绍以及关于软件工程的问题
查看>>
struts (一)
查看>>
【新番推荐】工作细胞
查看>>
开发过程中遇到的崩溃信息及原因,崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃崩溃...
查看>>
C#简单的tcpserver
查看>>
提高(Android)开发效率的工具与网站
查看>>
web.xml里welcome-file欢迎页面配置及web.xml简介
查看>>
[转]Fedora8 Linux下安装mapguide
查看>>
你在用MapGuide/Map 3D做什么?
查看>>