Couldn't find a better title, so edit it if you have a better idea.
Here is while loop in C:
while ((c = getchar()) != EOF)
How does the condition work?
How does (c = getchar())
assignment expression "return" a value, as it is then compared to EOF
?