First of, your code contains two mistakes:
1. getchar does not return a
char
but an
int
. This is important, because EOF is normally defined as -1, which otherwise could not be distinguished from the character 0xff.
2. in the printf statement you probably meant:
printf("%c",ch);
Now, all that fixed, back to your question. Of course, getchar does not only return the first character of the stdin stream, but also removes it from the stream. Hence to next call of getchar will return the character.
As an exercise, try to imagine how useful getchar would be if it didn't remove the character from the stream.