c语言,如何设计一个函数,将a,b的值互换?

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:52:10
例如原先a=1,b=3,用了这个函数xxxxx(a,b)后,a=3,b=1了
我试着写了一个
void changes(float x1,float y1)
{
float t;
t=y1;
y1=x1;
x1=t;
}
不过貌似使用后没有效果。。
谢谢不要喷我,初学。。

有两种方式处理这种情况,一个是指针传递,一个是引用传递。
指针传递
void changes(float *x1,float *y1)
{
float t;
t=y1;
y1=x1;
x1=t;
}
另外就是引用传递
void changes(float &x1,float &y1)
{
float t;
t=y1;
y1=x1;
x1=t;
}
不明白hi我。

void changes(float& x1,float& y1)
下面的不便,这样就不是传值了。而是传递引用。直接对参数起作用

void swap(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}

例如要交换x,y的话,swap(&x,&y); 要用“&”取址.

void changes(float *x1,float *y1)
{
float t;
t=*y1;
*y1=*x1;
*x1=t;
}

#include <stdio.h>
mian()
{
int a,b,c;
a=1;
b=3;
c=a;
a=b;
b=c;
printf("a=%db=%d",&a,&b);
}