Первый фрагмент интерпретирует содержимое ячейки памяти a
, как если бы оно было плавающим, без приведения . Если вы действительно не знаете, что делаете, вы не хотите этого делать, это почти всегда ошибка.
Второй фрагмент возвращает значение a
для float, которое должно дать вам то же значение, что и int. Это действительно делает это. Ваш код дает мне 1112539136.000000
. Какой компилятор вы используете и получаете 0
там?