在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比较会有精度问题,无法直接比较!
不知道你这个问题是否已经解决, 如果还没有解决的话:如果对你有帮助,还请点个采纳,万分感谢!