f=(i+j(float))/10;
неверно;тип в приведении приходит перед его операндом:
f=(i+(float)j)/10;
В любом случае.При оценке арифметического оператора, если один операнд имеет тип с плавающей запятой, а другой - целочисленный тип, то целочисленный операнд преобразуется в тип с плавающей запятой, и выполняется арифметика с плавающей запятой.
Это частьиз того, что называется обычными арифметическими преобразованиями (вы можете узнать о них больше, воспользовавшись поиском в Google, хотя MSDN имеет простое объяснение того, чем они являются ).
Где хранится временное значение, зависит от компилятора и компьютера.Вероятно, он будет храниться в регистре, поскольку вы собираетесь использовать его немедленно, но он может храниться в стеке или где-то еще.