C语言赋值表达式合法性判断:int a; float b=2.1; 则 a=int(b+3) 是否合法?
B. 错
该赋值表达式不合法。
原因:
b是浮点型变量,b+3的结果也是浮点型。int(b+3)使用int类型强制转换,将浮点数b+3向下取整,结果为整数。- 赋值操作要求左右两侧类型一致,但左侧
a为整型,右侧int(b+3)为整型,类型一致,看似合法。 - 然而,C语言中不允许将浮点数直接赋值给整型变量,即使使用了
int类型强制转换,也需要使用float类型变量来接收强制转换后的结果。
因此,该赋值表达式不合法,应该使用 float 类型变量来接收 int(b+3) 的结果。
原文地址: https://www.cveoy.top/t/topic/o4bM 著作权归作者所有。请勿转载和采集!