Language basics: type conversions
If the data types used in a expression are different implicit conversion takes place. You should be aware of this.
Integral promotion : all smaller valued data types when mixed in an expression get converted to an integer. After that the following rule applies:
The data type that is lower in the hierarchy shown below is converted to one that is higher.
int --> unsigned --> long --> unsigned long --> float --> double --> long double