c语言中swap是个什么函数?

Python013

c语言中swap是个什么函数?,第1张

swap函数一般是一个程序员自定义函数,是实现两个变量数值的交换。

1、比如:

int a = 2

int b =3

swap(a,b)//一般用到变量数值交换,交换后a=3 b = 2

2、通过使用临时变量实现交换。

void swap1(int x,int y)

{

int temp

temp=x

x=y

y=temp

}

扩展资料

C语言swap函数的使用

#include<stdio.h>

void swap(int *pa,int *pb)

{

int temp

temp=*pa,*pa=*pb,*pb=temp

}

void main()

{

int a=10,b=20

swap(&a,&b)//传递的是实参变量a,b的地址

printf("a=%d,b=%d\n",a,b)

}

void

swap(int

*a,int*

b)

{

int

temp=0

temp=*a

*a=*b

*b=temp

}

因为是指针,只要更换指针内的内容就可以了;

还有一种是

换指针,就设a指向没存A,b指向内存B,交换后把b指向内存A,把a指向内存B

void

swap(int

*a,int*

b)

{

int

*temp

temp=a

a=b

b=temp

}

不知道你要交换的两个变量类型,所以这里以整型数据交换为例,以下swap函数实现了交换两个整型变量值的功能:

#include <stdio.h>

// 交换给定指针指向整型变量的值。

// 参数:

// a -> 指向第一个变量的指针

// b -> 指向第二个变量的指针

void swap(int* a, int * b)

int main(int argc, int argv)

{

int a = 3, b = 5

printf_s("交换前:a = %d, b = %d\n", a, b)

swap(&a, &b)

printf_s("交换后:a = %d, b = %d\n", a, b)

return 0

}

// 交换给定指针指向整型变量的值。

// 参数:

// a -> 指向第一个变量的指针

// b -> 指向第二个变量的指针

void swap(int* a, int* b)

{

// 声明一个临时变量,保存第一个指针指向变量

// 的值。

// 其中 *a 是取出 a 指针指向变量的值

int temp = *a

// 将 b 指针指向的值赋值给 a 指针指向变量

(*a) = (*b)

// 将临时变量 temp 中保存的 a 指针指向变量的值赋值给

// b 指针指向的变量。

(*b) = temp

}

以上代码运行结果如下:

以下代码实现了使用宏定义作为模板,声明不同类型交换函数的功能,以下以声明double和float为例:

#include <stdio.h> 

// 声明一个函数代码模板,逻辑参考 swap(int* a, int* b)

#define DEF_SWAP_FUNC(Type) void swap_##Type(Type* a, Type* b) \

{ \

Type temp = (*a) \

(*a) = (*b) \

(*b) = temp \

// 使用模板声明并实现一个 double 类型变量交换函数,函数名为 swap_double

DEF_SWAP_FUNC(double)

// 使用模板声明并实现一个 float 类型变量交换函数,函数名为 swap_float

DEF_SWAP_FUNC(float)

int main(int argc, int argv)

{

// double 类型数据交换

double da = 5.6, db = 3.5

printf_s("double 交换前:da = %lf, db = %lf\n", da, db)

swap_double(&da, &db)

printf_s("double 交换后:da = %lf, db = %lf\n", da, db)

// float 类型数据交换

float fa = 3.4, fb = 6.8

printf_s("float 交换前:fa = %f, fb = %f\n", fa, fb)

swap_float(&fa, &fb)

printf_s("float 交换前:fa = %f, fb = %f\n", fa, fb)

return 0

}

运行结果如下: