在C语言中,基本类型都可以相互强制转换吗?基本类型和结构体能强制转换吗?强制转化的条件是什么?

Python015

在C语言中,基本类型都可以相互强制转换吗?基本类型和结构体能强制转换吗?强制转化的条件是什么?,第1张

强制类型转换顾名思义就是用户强制的而不是语言自身的自动的进行转换

因此,你可以对任何类型进行强制类型转换,但后果需要你自己承担

也就是说,你必须明确的知道这样转换以后会带来什么后果

比如你把float类型强制转化为int类型,必然导致精度的丢失

如果你可以接受,没问题

如果你把结构体类型强制转换为int(或者反过来),程序只会给你一个警告

但你使用的时候,程序很可能会出错

所以一般基本类型直接的转换只会导致精度的丢失

但结构体和基本类型的转换可能导致程序的错误

所以实际使用中应该尽量避免这样的转换

具体的你可以参照一下百度百科

你写的程序不太完整,不能看是否正确。例如:“PRO cell”,“sell[i].mc”的由来。

从你的最后一句话可以大概猜出一些原因:因为用“strcmp”就行,而“strcmp”是专门处理字符串的,所以“sell[i].mc”的实际内容是字符串。可是你用“long”做强制类型字符串,这当然不行。

以上只是推断,不一定对。