首页 > 编程语言 >C/C++ 使用四种方法交换两个数(包括不使用第三个变量)

C/C++ 使用四种方法交换两个数(包括不使用第三个变量)

时间:2022-09-22 18:01:02浏览次数:43  
标签:tmp int void 使用 C++ printf include 四种

#include <iostream>
#include <string>
#include <windows.h>
using namespace std;

//方式一 使用指针
void swap1(int* a, int* b) { //指针作为函数的参数
    int tmp = *a;
    *a = *b;
    *b = tmp;
}

//方式二 使用引用
void swap2(int& a, int& b) { //引用作为函数的参数
    int tmp = a;
    a = b;
    b = tmp;
}
//下面两种方法都是在不使用第三个变量的情况下交换两个值
//方式三
void swap3(int& a, int& b) { //引用作为函数的参数
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}
//方式四
void swap4(int& a, int& b) { //引用作为函数的参数,这种方式若数值太大容易溢出,不太建议使用
    a = a + b;
    b = a - b;
    a = a - b;
}

int main() {
    int x = 10;
    int y = 100;
    swap1(&x,&y);
    printf("第一次调用x:%d,y:%d\n", x, y);
    swap2(x,y);
    printf("第二次调用x:%d,y:%d\n", x, y);
    swap3(x,y);
    printf("第三次调用x:%d,y:%d\n", x, y);
    swap4(x, y);
    printf("第四次调用x:%d,y:%d\n", x, y);

    system("pause");
    return 0;
}

标签:tmp,int,void,使用,C++,printf,include,四种
From: https://www.cnblogs.com/smartlearn/p/16720290.html

相关文章

  • C++自定义的工具函数
    my_function.h1#pragmaonce2#include<iostream>3#include<cstdarg>4#include<list>5#include<vector>6#include<bitset>7#include<c......
  • UEC++编程规范
    UEC++中类的命名规范Axxx继承自AActorUxxx继承自UObjectFxxx原生C++Ixxx接口类Sxxx为slate 枚举的定义:1.加反射宏UENUM()2.自定义enumclassECustomColorType:......
  • C++ void类型指针
    void  =>空类型void*=>空类型指针,只存储地址的值,丢失类型,无法访问,要访问其值,我们必须对这个指针做出正确的类型转换,然后再间接引用指针。所有其它类型的指针都可以......
  • Golang 使用 MongoDB 报错
    在使用MongoDB时,URI格式一般为:连接URImongodb://用户名:密码@127.0.0.1:27017//等同于mongodb://用户名:密码@127.0.0.1:27017/admin如果不指定数据库名,默认使......
  • 使用JavaScript将小写金额转化为大写金额的两种常见方法
    方法一:使用正则表达式//方法一:使用正则表达式functiondealBigMoney(money){if(money===''||money==null||money==='undefined'){return;......
  • UEC++ 事件
    事件本身和多播代理一样,为了操作的安全性,事件提供了额外的操作限定。即禁止在声明事件对象的外部调用事件传播,清理,检查等函数。通过操作隔离,最大程度的增加了事件的安全性......
  • 算法题中常用的C++函数
    一、向vector容器中增添元素1、在末尾增添一个元素push_back()2、在任意地方插入一个或多个元素insert()#include<iostream>#include<vector>//注意这......
  • JavaWeb--MySql基础:数据库概念、MySql前期基础、SQL基础语句、Navicat使用--2022年9月
    第一节  数据库1、数据库是什么存储和管理数据的仓库,数据是有组织的进行存储。数据库英文名是DataBase,简称DB2、数据库管理系统......
  • python 使用smtp发送邮件通知
    python使用SMTP发送邮件通知1.python版本python3.6.82.发送邮件类importsmtplibimporttracebackfromemail.mime.textimportMIMETextclassEmailSend(ob......
  • 使用Geomagic公司遥操作器Touch遥操作UR5e机器人
    应导师要求,给了我一款遥操作器,需要通过该遥操作器来操作UR5e机器人。这款遥操作器Geomagic公司出品的Touch,外型大概长这个样子: 以下是大致思路:使用moveit控制UR5e,同时利......