Type conversions

An expression of a given type is implicitly converted in the following situations:
  • The expression is used as an operand of an arithmetic or logical operation.
  • The expression is used as a condition in an if statement or an iteration statement (such as a for loop). The expression will be converted to a Boolean (or an integer in C89).
  • The expression is used in a switch statement. The expression will be converted to an integral type.
  • The expression is used as an initialization. This includes the following:
    • An assignment is made to an lvalue that has a different type than the assigned value.
    • A function is provided an argument value that has a different type than the parameter.
    • The value specified in the return statement of a function has a different type from the defined return type for the function.
You can perform explicit type conversions using a cast expression, as described in Cast expressions.