Would someone be kind enough to tell me why this program fails? char *x, *y; { register char *temp; temp = x; x = y; y = temp; } main() { char *a="aaaa"; char *b="bbbb"; swap( &a, &b ); printf( " a = %s\t b = %s\n", a, b); }