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

来源:互联网 发布:淘宝安全证书过期 编辑:程序博客网 时间:2024/06/04 20:12


在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;}
通过异或操作,也能达到这个效果,而且,不需要额外的存储开销,这样运行效率是否更高呢?



0 0
原创粉丝点击