In the following,
main()
calls swap()
to reverse the values in the variables
a
and b
.
But what really happens?
#include <stdio.h> void swap( int x, int y ) { int temp; printf(" x=%d y=%d\n", x, y ) ; temp = x; x = y; y = temp; printf(" x=%d y=%d\n", x, y ) ; } void main ( void ) { int a = 44, b = 77 ; printf("a=%d b=%d\n", a, b ) ; swap( a, b ) ; printf("a=%d b=%d\n", a, b ) ; }
This puzzle shows a classic C programming error. Be sure you understand what goes wrong.