a code in 'Let Us C' by Y.Kanetkar confused me since i am only a beginner
A lot of people mistakenly use %u to print the value of a pointer. The correct method is using %p and casting non-void pointers to void:
printf("Original address in x = %p\n", (void*)x);
printf("Original address in y = %p\n", (void*)y);
printf("Original address in z = %p\n", (void*)z);
there seem to be a lot of errors in the book
From a cursory reading of that book, it's total crap. You'll probably learn more bad habits than good ones.