我想,应该是在计算1 / 5的时候,默认把它的值当成int了,执行了类型转换(int),所以 (int)(1 / 5) = 0。后来又把零赋值给f,最后就出现了那种情况。
具体看这个:
#include <stdio.h>
#include "conio.h"
main()
{
float f;
printf("sizeof(float) = %d\n",sizeof(float));
printf("sizeof(int) = %d\n",sizeof(int));
printf("sizeof(1 / 5) = %d\n",sizeof(1 / 5));
printf("sizeof(f = 1 / 5) = %d\n",sizeof(f = 1 / 5));
getch();
}