/**************************************************************************** * swap2.c * * Computer Science 50 * David J. Malan * * Swaps two variables' values. * * Demonstrates (clever use of) bitwise operators. ***************************************************************************/ #include // function prototype void swap(int *a, int *b); int main(void) { int x = 1; int y = 2; printf("x is %d\n", x); printf("y is %d\n", y); printf("Swapping...\n"); swap(&x, &y); printf("Swapped!\n"); printf("x is %d\n", x); printf("y is %d\n", y); } /* * Swap arguments' values. */ void swap(int *a, int *b) { *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b; }