Basic and Advance C Question:

How can I swap two values without using a temporary?

Tweet Share WhatsApp

Answer:

The standard hoary old assembly language programmer's trick is:
a ^= b;
b ^= a;
a ^= b;

But this sort of code has little place in modern, HLL programming. Temporary variables are essentially free, and the idiomatic code using three assignments, namely
int t = a;
a = b;
b = t;

is not only clearer to the human reader, it is more likely to be recognized by the compiler and turned into the most-efficient code (e.g. perhaps even using an EXCH instruction). The latter code is obviously also amenable to use with pointers and floating-point values, unlike the XOR trick.

Download C Programming PDF Read All 221 C Programming Questions
Previous QuestionNext Question
Which is more efficient, a switch statement or an if else chain?People claim that optimizing compilers are good and that we no longer have to write things in assembler for speed