不用第三方参数,交换2个参数的值的两种宏函数

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <vector>

using namespace std;

#define swap1(x,y) x=x+y,y=x-y,x=x-y

#define swap2(x,y) x^=y,y^=x,x^=y

int main()
{
    int a=1,b=2;
    //方法1
    swap1(a,b);
    cout << "a=" << a << " b=" << b << endl;

    //方法2
    a=1,b=2;
    swap2(a,b);
    cout << "a=" << a << " b=" << b << endl;
}
时间: 2024-08-27 00:12:52

不用第三方参数,交换2个参数的值的两种宏函数的相关文章

不用第三方变量交换两个变量的值

1.这需要进行位操作,必较麻烦的在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的.通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用.在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法). 上面的算

不用第三方变量交换两个数的值

1.利用两数之和减去另一个数的方式: NSInteger a=3,b=5; a=a+b; b=a-b; a=a-b; NSLog(@"a=%ld,b=%ld",a,b); p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } span.s1 { } 打印:a=5,b=3 2.利用位运算 ^ (异或): 异或的特点是:一个数据a与另一个数据b做异或运算之后,变成了另外一个数c,再读取这个数

不引用第三方变量交换a和b的值

方法一:(可操作字符) a = a^b; b = a^b; a = a^b; 方法二:(可操作字符) a=a+b; b=a-b; a=a-b; 方法三:(不可以操作字符) a=a*b; b=a/b; a=a/b; 方法四: swap(a,b);

Jmeter 跨线程组传递参数 之两种方法

终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子: 1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过) 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为

【11g体系结构,6】参数文件和一些参数

一.参数文件的作用: 参数文件记录了数据库的配置.在数据库启动时,Oracle 要根据参数文件中的参数设置, 配置数据库.如要为各个内存池分配多少内存,允许打开的进程数和会话等等.要想让数 据库启动,必需先读取参数文件.参数文件中的参数,我们通常称其为初始化参数,简称就 是参数. 二.参数文件共有两种参数文件 参数文件包含pfile 和spfile.区别如下: 1.PFILE    为文本文件,可以使用vi编辑器进行修改,可以放在客户端和服务端. 文件名为:init<sid>.ora. 从or

java newInstance() 的参数版本与无参数版本详解

newInstance() 的参数版本与无参数版本详解 博客分类: Core Java 通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.newInstance() 以下对两种调用方式给以比较说明: Class.newInstance() 只能够调用无参的构造函数,即默认的构造函数: Constructor.newInstance() 可以根据传入的参数,调用任意构造构造函数. Class.newInstance() 抛出所有由被调用构造函数抛

用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。

函数功能: 使用main函数的参数,实现一个整数计算机,程序可以接受三个参数,第一个参数"-a"选项执行加法,"-s"选项执行减法,"-m"选项执行乘法,"-d"选项执行除法,后面两个参数为操作数. 思考: 三个参数中两个操作数不用处理,直接传入即可,而对于第一个操作数就需要处理了,以保证传入的参数是"'-a','-s','-m','-d'",以便于处理计算,第一步将操作符号转化为上述赋好,然后将参数以及操

【转】SystemParametersInfo API学习(128个中文参数解释,215个实际值)

uiAction:该参数指定要查询或设置的系统级参数.其取值如下: SPI_GETACCESSTIMEOUT:检索与可访问特性相关联的超时段的信息,PvParam参数必须指向某个ACCESSTIMEOUT结构以获得信息,并将该结构中的cbSjze成员和ulParam参数的值设为sizeof(ACCESSTIMEOUT). SPI_GETACTIVEWINDOWTRACKING:用于Windows 98和Windows NT 5.0及以后的版本.它表示是否打开活动窗口跟踪(激活该窗口时鼠标置为开状

史上最详细Android集成QQ,微信,微博分享(不用第三方)持续更新中

QQ 1 下载sdk并运行demo 2 各种配置 IUiListener 4 分享图片 41 分享到QQ 41 分享到QZONE Sina微博 配置 选择集成sdk方式 分享图片 现在项目中用个第三方登录,或分享已经不是什么稀奇事了,但是要想把这个功能做好,那可就不容易了.估计到这里就有人会说了,扯犊子,这玩意,我用第三方sdk,什么umeng,sharesdk分分钟给你做出来,可是这些第三方sdk只有对项目的分享要求不高的时候才适合,如果要定制分享,那我就只能呵呵.虽然第三方登录或分享没什么技