int i = 342;
printf("result = %f", i);
result = 0.000000
int i = 342;
float f = i;
printf("result = %f", f);
result = 342.000000
(float)i
, а *((float *)&i)
.If any argument after default argument promotions is not the type expected by the corresponding conversion specifier, or if there are fewer arguments than required by format, the behavior is undefined.