swap(x,y)
Curtis Generous
generous at dgis.daitc.mil
Tue Aug 22 22:46:51 AEST 1989
tg1e+ at andrew.cmu.edu (Timothy R. Gottschalk) writes:
> To swap two variables x,y in C without using a temporary variable:
> /* begin swap */
> x += y;
> y = x - y;
> x -= y;
> /* end swap */
> Just curious...(this looks pretty valid) does anyone know an even
>simpler method? I would never program this way -- it's more of a theory
>question. I've been told that it can't be done (???).
>Tim Gottschalk
>Pgh, PA
Saw this come across the net a few months back. Don't know where it came
from.
swap( a , b )
unsigned *a, *b;
{
*a ^= *b ;
*b ^= *a ;
*a ^= *b ;
}
I'm not sure it is any simpler, just another original approach.
--curtis
--
Curtis C. Generous
DTIC Special Projects Office (DTIC-SPO)
ARPA: generous at daitc.mil
UUCP: {uunet,vrdxhq}!dgis!generous
More information about the Comp.lang.c
mailing list