Если у меня есть выражение, как следующее:Как операнды продвигаются в длинном выражении?
double d = floatVar/intVar;
intVar
будет продвинут на float
, а затем вернулся float
результат будет преобразован в double
и назначенную d
. Но что произойдет, если у меня есть длинное выражение, например:
double d = floatVar/intVar * shortVar + charVar + intVar2;
ли все переменные быть повышен до float
, а затем вернулся float
результат будет преобразован в double
и назначен d
?
Кроме того, если у меня есть следующие:
double d = (floatVar/intVar) * shortVar + charVar + intVar2;
Будет intVar
быть преобразованы в float
, в то время как shortVar
и charVar
будут преобразованы в int
, а затем вернулся int
результат от shortVar + charVar + intVar2
будет преобразован в float
и умножается на возвращаемый float
результат (floatVar/intVar)
, и этот результат возвращается float
результат будет преобразован в двойной и назначен d
?
Да, да, да, да и да. – EJP