In C an assignement operation is en expression whose value is the result of the assignment.
For example a = 5
is an expression whose value is 5
.
((c = getchar()) != EOF
calls getchar
and puts the return value in c
and then compares the result (now the content of c
) = to EOF
.