主题:[讨论]有关赋值表达式
zjkzxy
[专家分:310] 发布于 2011-03-08 11:11:00
题目:以下符合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
我认为都不对,不知其它大侠有何高见?
回复列表 (共6个回复)
沙发
ckrok [专家分:30] 发布于 2011-03-08 12:05:00
B应该对吧
板凳
bruceteen [专家分:42660] 发布于 2011-03-08 12:06:00
C也应该是对的吧
3 楼
ckrok [专家分:30] 发布于 2011-03-08 12:58:00
c最后一句 ,不是赋值语句
4 楼
fragileeye [专家分:1990] 发布于 2011-03-08 15:43:00
B 选项为何不对额?
5 楼
windy0will [专家分:2300] 发布于 2011-03-08 15:51:00
[quote]c最后一句 ,不是赋值语句[/quote]
逗号','运算符的优先级比赋值号'='要低,
故d=9+e,e++,d+9等价于 (d=9+e),e++,d+9.
不要把时间浪费讨论这种问题上,应该没人会写出这样的代码吧?
6 楼
bruceteen [专家分:42660] 发布于 2011-03-09 08:34:00
[quote]c最后一句 ,不是赋值语句[/quote]
如果这样说的话,则B也不是。
因为逗号优先级比赋值号要低,所以B是个逗号表达式,只是其子项包含赋值操作,和C是一样的。
我来回复