各位老师们有空的话帮我解释一下吧

lvziwei
各位老师们有空的话帮我解释一下吧

今天看了个程序
void fun(int f)
{
     int a = (int)f;
     if ((*(int *)&f) == (*(int *)&a)) {
              printf("f is INT/n");          // 是整型
          ... ...
     } else {
             printf("f is FLOAT/n");    // 是浮点数
          ... ...
     }

    .... .......
}
可是 我是个初学者对于指针还不是很明白   
希望各位老师们帮我逐层详细的解释一下   *(int *)&f     是什么意思好吗?