c编程:类型转换有什么区别?

象嘉道*_*象嘉道 1 c

鉴于以下C代码,a = f;和之间有什么区别a = (int *) f;

float *f;
int *a;
...
a = f;
a = (int *) f;
Run Code Online (Sandbox Code Playgroud)

oua*_*uah 5

float *f;
int *a;

a = f;
Run Code Online (Sandbox Code Playgroud)

此赋值是错误的(存在C约束违规),指针类型之间没有隐式转换(除了void *).编译器可以拒绝使用此分配编译程序.