An expression consists of constants, variables and operators. When constants and variables of different types are mixed in the same expression, you need to cast them into the same type (``explicit conversion''), otherwise the C compiler will convert them to the same type automatically (``implicit conversion'').