swap(x,y)
John Tromp
tromp at piring.cwi.nl
Tue Aug 22 18:21:03 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
How about
x^=y^=x^=y;
Avoids possible overflow problems and looks great in an
Obfuscated C Code entry too!
John Tromp (tromp at cwi.nl)
More information about the Comp.lang.c
mailing list