符合C语言语法的赋值表达式是A、d=9+e+f=d+9 B、d=9+e,f=d+9 C、d=9+e,e++,d+9 D、d=9+e++=d+7

选哪个?请详细解释一下,谢谢了

需要首先明确
1.)赋值操作符的优先级比“+”更低。
2.) 赋值操作符的返回值是赋值后的左操作数的值。
3.) 常量和表达式不能作为左值,不能作为左操作数(即不能放在二元运算符的左边)。

以上3点判断如下:
A:可以分割为两个连续的赋值操作,连续赋值操作从右至左执行,第一个执行赋值操作左边为(9+e+f)是表达式,错误。编译器应该报错。可以修改为d=9+e+(f=d+9)。
B:正确。
C:d+9是要干什么?也没有赋值。语法错误。
D:同A

建议写出来编译一下。映像会深刻些。某些教材是比较简略的,建议查查C++
primer之类的书籍。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-20
A的话两个等号,一般是要写成d=(9+e+f=d+9)的,而且d+9算出来之后付给左边e+f+9这个怎么能赋给两个值呢?A不对,B可以,C最后的那个d+9算出来没有左边的赋值对象没法赋值啊,他只是算出d+9然后没用……d的值也没有改变的。D也不对的,和A类似
第2个回答  2010-05-20
A和D的问题是=(赋值运算符)的左边不能是表达式或常量!写成d=(9+e+f=d+9)也是不行的
B是正确的
C的话,表达式d+9不能单独作为一个语句
第3个回答  2019-07-08
b