To be technically accurate, isdigit does in fact expect an int. However, the value is supposed to be that of a valid char, or EOF. So the call is valid C, it just won't do what they expect it to.

Quzah.