问一个C语言题目,大家帮帮我,最好说详细一点,谢谢了。 题目:一下符合C语言赋值表达式的是? A:d=9+c+f

B:d=(9+e,f=d+9)
C:d=9+e,e++,d+9
D:d=9+e++=d+7

A和B都正确
赋值表达式形式:变量=表达式
1.计算赋值运算符右侧表达式的值。(“=”为赋值运算符)
2.将赋值运算符右侧表达式的值赋给左侧的变量。
3.将赋值运算符左侧的变量的值作为表达式的值。

A不用说了吧,对照定义即可
B的话 右边(9+e,f=d+9)是逗号表达式,并将表达式的值赋给d,所以也是正确的
C是逗号表达式,不是赋值表达式
D中第二个“=”左边(9+e++)不是合法的变量追问

发错了。A:d=9+c+f=d+9

追答

B,
A的错误和D一样,第二个 = 左边(9+c+f)不是合法变量

追问

谢谢你了

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-14
A d=9+c+f 正确很正常的表达式。
B d=(9+e,f=d+9) 正确结果是d=f=d+9,这里:9+e,f=d+9 逗号表达式,f=d+9;d=f ,f=d+9是赋值表达式
C d=9+e,e++,d+9 正确 9+e,e++,d+9是逗号表达式,结果是 d=d+9 ;e=e+1
D:d=9+e++=d+7 第二个赋值号有问题,9+e++ 不是左值,不可以赋值=优先级比较低
相似回答
大家正在搜