software-mariodiana
7/4/2016 - 7:01 PM

Illustration of using bitwise "exclusive OR" operation to swap int values in C.

Illustration of using bitwise "exclusive OR" operation to swap int values in C.

// Adapted from answer on Quora.
// 
// "Can I swap() without any extra variable in C?"
//
// https://is.gd/wpsOlP

#include <stdio.h>

int main(int argc, char** argv) {
	int a = 37;
	int b = 40;

	printf("a: %d\n", a);
	printf("b: %d\n", b);

	printf("Swap!\n");

	// Exclusive OR bit operation.
	a ^= b;
	b ^= a;
	a ^= b;

	printf("a: %d\n", a);
	printf("b: %d\n", b);

	return 0;
}