您的位置:首页 > 编程语言 > C语言/C++

C语言中交换两个变量的值

2014-11-01 11:26 851 查看
在C语言中,要交换两个变量的值,对于不同的人,可能会有不同的方法。

对于初学者来说,可能是这样。

void swap(int x,int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
但是,C语言中的函数调用采用的值传递,因此在主函数中调用该swap函数显然无法交换两个变量的值。

当然,对于很多使用C语言的人来说,不会犯上面的错误,会这么写交换函数。

void swap(int *x,int *y)
{
int temp;
temp = *x;
*x = *y
*y = temp;
}
通过传递变量的地址,能达到预期的结果。

今天,看到另外一种方法。

void swap(int *x,int *y)
{
*y = *x ^ *y;
*x = *x ^ *y;
*y = *x ^ *y;
}
通过异或操作,也能达到这个效果,而且,不需要额外的存储开销,这样运行效率是否更高呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: