宏定义实现两数交换

#include<stdio.h>
#define SWAP(VALUE1,VALUE2) do{    VALUE1 += VALUE2;    VALUE2 = VALUE1 - VALUE2;    VALUE1 = VALUE1 - VALUE2;}while(0)
int main()
{
    double a,b;
    a = 2;
    b = 1;
    printf("a = %lf,b = %lf\n",a,b);
    SWAP(a,b);
    printf("a = %lf,b = %lf\n",a,b);
    return 0;
}
时间: 2024-07-30 13:52:51

宏定义实现两数交换的相关文章

实现两数交换的几种方法

#实现两数交换的几种方法: - - 1.常见的方法(采用临时变量) int x=10; int y=20; int temp=x;//定义临时变量 x=y; y=temp; - 2.异或的方法 int x=10; int y=20; x=x^y; y=x^y;//y=x^y^y=x;即y=10; x=x^y;//x=x^y^x=y;即x=20; ``` - 3.自加的方法 int x=10; int y=20; x=x+y;//x=30; y=x-y;//y=30-20=10; x=x-y;//

C语言与汇编的嵌入式编程:汇编调用函数(两数交换)

编写一个两数交换函数swap,具体代码如下: #include<stdio.h> void swap(int *a,int *b) { int temp; temp = *a; *a = *b; *b= temp; //printf("a=%d,b=%d,temp=%d\n",a,b,temp); } void main(){ int a=0; int b=0; char *str1="a=%d,b=%d\n"; printf("++++++\

C语言利用va_list、va_start、va_end、va_arg宏定义可变參数的函数

在定义可变參数的函数之前,先来理解一下函数參数的传递原理: 1.函数參数是以栈这样的数据结构来存取的,在函数參数列表中,从右至左依次入栈. 2.參数的内存存放格式:參数的内存地址存放在内存的堆栈段中,在运行函数的时候,从最后一个(最右边)參数開始入栈.因此栈底高地址,栈顶低地址,举个样例说明一下: void test(int a, float b, char c); 那么,在调用test函数的时候,实參char c先进栈,然后是float b,最后才是int a,因此在内存中变量的存放次序是c-

异或运算实现两数交换

1.异或定义 1 ⊕ 1 = 0 0 ⊕ 0 = 0 1 ⊕ 0 = 1 0 ⊕ 1 = 1 简单说就是,相同为0,不同为1. 2.C++实现方法 1 #include <iostream> 2 3 int main() 4 { 5 int a, b; 6 std::cout << "请输入要交换的两个数:"; 7 std::cin >> a >> b; 8 std::cout << "交换前:\na="

python 两数交换新写法原理

今天学python,突然发现没有swap函数,那怎么交换两个数呢,难道手写交换,那效率太差了 我们看一下实例 a = 1 b = 2 a,b = b,a print(a,b) 其实很简单的原理,然而我却琢磨了半天,可能陷入了过程化编程的思维里,一直纠结a和b到底谁先赋值,怎么交换了,想了半天百度一下,瞬间清晰了 个人想法: 变量只是存储一个值,我们用用新变量指向另一个变量时,其实指向的是另一个变量存储的值 那么这里就可以这么理解了,a,b = b,a 其实变相的给前面 a,b  两个变量他们的指

指针实现两数交换和指向函数的指针

指针就是地址,而指针变量就是存储地址的变量. 1.指针与函数 利用指针解决: C语言中函数的参数采用"单向传递",故第一个程序中改变形参不会改变实参,而在第二个程序中,使用指针变量作为参数,改变指针变量所指向的值,函数调用结束后,变量值被保留下来. 2.指向函数的指针的应用

两数交换

1 利用第三个变量 $temp = $a; $a = $b; $b = $temp; 2.list — 把数组中的值赋给一些变量: list($a, $b) = array($b, $a); 3.array_reverse — 返回一个单元顺序相反的数组 $arr=array($a,$b); $arr=array_reverse($arr); $a=$arr[0]; $b=$arr[1]; 4.直接使用数组操作: $a = "aaa"; $b = "bbb"; $b

Linux学习笔记——举例说,makefile 添加宏定义

0.前言 从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile.假设自己动手写一个makefile总认为非常吃力. 所以特意借助博客总结makefile的相关知识.通过样例说明makefile的详细使用方法. 例说makefile分为下面几个部分.很多其它内容请參考[例说makefile索引博文] 1.仅仅有单个C文件 2.含有多个C文件 3.须要包含头文件路径 4.添加宏定义 5.添加系统共享库 6.添加自己定义共享库 7.一

VC中预处理指令与宏定义详解

刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具.使用它们可以进行简单的源代码控制,版本控制,预警或者完成一些特殊的功能. 一个经典的例子 使用预处理与宏定义最经典的例子莫过于加在一个头文件中以避免头文件被两次编译.试想这种的情况,有一个文件headerfile.h 它被包含在headerfile1.h中,同时在headerfile2.h 中也被包含了,现在有一个CPP文件,implement.cpp 包含了headerfi