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

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

欢迎补充。。。。

最新文章

  1. BZOJ4516: [Sdoi2016]生成魔咒 后缀自动机
  2. wc之上传图片
  3. 别样的checkbox
  4. OC基础(9)
  5. JS幻灯片,循环播放,滚动导航,jQuery平滑旋转幻灯片
  6. POJ 3007 Organize Your Train part II(哈希链地址法)
  7. IntelliJ IDEA SVN的账号修改 信息清除
  8. Wix打包系列 (六)制作升级和补丁包
  9. XSS学习笔记(五)-XSS防御
  10. Sqlite操作帮助类
  11. 【转】jira迁移数据
  12. Luogu 2051[AHOI2009]中国象棋 - DP
  13. android 打开系统相机,
  14. 电力项目十七--数据字典首页JS添加和删除表格
  15. android分屏
  16. c语言指针的指针
  17. maven新建web项目提示The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
  18. springBoot文档地址
  19. poj3669
  20. Spring学习--依赖注入的方式

热门文章

  1. ASP.NET Web API 自定义MediaType实现jsonp跨域调用
  2. 解决Sublime Text乱码问题
  3. Android学习笔记_59_清除sdcard缓存
  4. 01_常用 Linux 命令的基本使用
  5. pl sql 存储过程、函数
  6. 我的第一个Python程序
  7. nginx配置、域名、前端代码部署
  8. ref、refs使用的注意事项
  9. python 面向对象类与类之间的关系
  10. (第04节)集成SpringMVC框架