C语言int范围与平台有关,不同平台范围可能不同有的是16位,有的是32位,如果刚巧你那个平台int范围比较大32位,你赋值过去就还是原值65535(在可表示范围内);否则如果是16位的当然就是-1了。赋值给float应该还是原值,float范围比较大。
仍然都是65535,这个数值并没有超过int和float的范围所有的内存空间都必须先申请才能使用,这是规定。C语言是一个强数据类型的语言