Explicity conversions are typecasts in C. (int)
When you do 10/10.0f the first ten is converted
implicitly into a float.
This is for most binary operators. narrower:~ a variable that takes less bytes to store. The narrower variable often gets promoted to a “wider” variable, to match the size of the other operand.
e.g. Integral promotions := a character or short integer
gets converted to type int. c89
long long int, unsigned long long intlong int, unsigned long longint, unsigned intshort, unsigned short intchar, signed char, unsigned char_BoolIgnoring extended int and enumerated types. # integer and integral
promotions Integer promotion := anything less than int gets
converted to int, or failing that unsigned int.
See page 146 in c programming a modern approach if you want the rule for usual arithmetic conversions