c语言写交换变量的函数,c语言交换两个变量

5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。

不知道你要交换的两个变量类型,所以这里以整型数据交换为例,以下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;

}

运行结果如下:

编写c语言程序,实现交换两个变量值的操作。

/*

编写c语言程序,实现交换两个变量值的操作。

要求:使用形参为指针的函数swap完成交换功能。

主函数中,使用整型指针从键盘输入两个整数,通过调用swap完成交换

输出交换前后的变量值进行比较。

输入输出示例:

Input two number:3 4

Before change:a=3,b=4

After change:a=4,b=3

*/

//File: swap.c

#include stdio.h

#include stdlib.h

void swap(int *a, int *b)

{

int tmp;

tmp=*a;

*a=*b;

*b=tmp;

}

int main()

{

int *a=NULL,*b=NULL;

a=(int *)calloc(1,sizeof(int));

if(!a)

{

perror("calloc a err.");

}

b=(int *)calloc(1,sizeof(int));

if(!b)

{

perror("calloc b err.");

}

printf("Input two number:");

scanf("%d %d",a,b);

printf("Before change:a=%d,b=%d\n",*a,*b);

swap(a,b);

printf("After change:a=%d,b=%d\n",*a,*b);

return 0;

}

C:\myprogcc -g -Wall swap.c -o swap

C:\myproswap

Input two number:3 4

Before change:a=3,b=4

After change:a=4,b=3

C:\mypro

程序已调好,直接运行即可。

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

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函数的使用

#includestdio.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);

}

C语言怎么做交换两个任意类型变量的值的一个函数

要交换任意变量 那么就只能通过指针来进行

不考虑变量类型,而直接交换值。

需要三个参数,两个变量地址,以及变量所占的空间。

赋值可以用memcpy

代码如下:

void super_swap(void * a, void *b, int size)

{

void *p = malloc(size);

memcpy(p, a, size);

memcpy(a,b,size);

memcpy(b,p,size);

free(p);

}

C语言 :通过函数交换两个变量的值

#include stdio.h

void swap_1(int*a,int*b)//方法一,定义临时变量

{

int temp=*a;

*a=*b;

*b=temp;

}

void swap_2(int*a,int*b)//方法二,利用加减法运算

{

*a=*a+*b;

*b=*a-*b;

*a=*a-*b;

}

void swap_3(int*a,int*b)//方法三,利用位运算

{

*a=*a^*b;

*b=*a^*b;

*a=*a^*b;

}

int main()

{

int x,y;

scanf("%d%d",x,y);

printf("x=%d,y=%d\n",x,y);

swap_1(x,y);//或swap_2(x,y);或swap_3(x,y);

printf("x=%d,y=%d\n",x,y);

return 0;

}

C语言题目:编写函数,交换两变量的值。

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;

}


分享名称:c语言写交换变量的函数,c语言交换两个变量
本文链接:http://scyanting.com/article/dsshdcp.html