若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是( )。A. x=x*3=2B. x=(y==1)C. i=float(x)D. i%(-3)可是C的话是错的啊,强制类型转化不是这样写啊
B、C都是正确的。
A——=是右结合的, x=x*3=2等价于 x=(x*3=2),x*3不是左值表达式,不能赋值
D——%两边必须都是整数,i是float型浮点数,所以错。
请看——
可以解析一下吗
A x*3不是左值,不可作为赋值符的左操作数C 你自己都说了,应该是i=(float)xD 浮点数不可作为取余符的操作数
我奇怪的是为什么有些人说B是错的,答案不一样
C选项如果要对,前提是将其作为C++的代码,而不是C代码,这与题面的"符合C语言语法"矛盾