http://www.nowamagic.net/academy/detail/40110208
void swap(int *x, int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
如果再加个限制,不使用额外的变量,可以这样:
void swap(int *x,int *y)
{
*x = *x + *y;
*y = *x - *y;
*x = *x - *y;
}
也可以巧妙地使用位运算来实现:
void swap(int *a, int *b)
{
*a = *a ^ *b;
*b = *a ^ *b;
*a = *a ^ *b;
}

本文介绍了三种不同的方法来实现在不使用额外变量的情况下交换两个整数的值。首先使用了简单的数学加减法实现,其次利用了位运算进行巧妙的设计。这些方法在实际编程中非常实用,尤其是在资源受限的环境中。
971

被折叠的 条评论
为什么被折叠?



