问题:switch(c)语句中为什么c可以是char类型,并且不能为float类型?

在switch(c)语句中,c不可以是什么类型(D)
A.int
B.long
C.char
D.float

问题:switch(c)语句中为什么c可以是char类型,并且不能为float类型?

因为float不能做相等比较,有误差
所以switch里不允许写float类型的变量,在语法层面就约束你不要犯错
char本身也是整型,是可以比较的

float类型涉及到精度问题,不能直接做等值比较,而int,long,char实际都是整形,可直接做比较。

因为在C语言底层中,float/double和int/char/long等整形的存储方式是不一样的。虽然char是字符,但其本质上也是ascii码,对应的整形。所以char和int是可以直接比较的,但int和float比较会有精度问题,无法直接比较!

如果对你有帮助,还请点个采纳,万分感谢!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^