c语言入门:类型转换

只有类型相同的值才能进行运算吗?
比如30/4*5.0
30和4都属于int型,但5.0是浮点型,浮点型比int型大,所以是int升级到double,会经过隐式转换最后结果是35.0。
就是说运算过程算一环,且会在运算时自动转换类型,比如i=2,n为float型,n=1/i最终的n的结果是0,会在运算出结果时截断,是按照整型的条件来的。
赋值过程是另一环,运算时以最大的类型为标准进行升级,赋值时在按照变量的类型进行赋值。
个人理解,不知道对不对