当前位置: 代码迷 >> C语言 >> 解答下此题
  详细解决方案

解答下此题

热度:303   发布时间:2007-10-15 16:25:06.0
解答下此题
提示: 作者被禁止或删除 内容自动屏蔽
2007-10-15 08:25:06
鸿工作室

等 级:新手上路
帖 子:89
专家分:0
注 册:2007-10-14
  得分:0 
0和0


if(x=y=z) x=4;//条件判断语句要用"==","="是赋值语句来的,直接把z的值给了x和y





----------------解决方案--------------------------------------------------------
x=0,y=0..
x=y=z 从右往左读,z=0.赋值给y,y=0...赋值给x,x=0.。
----------------解决方案--------------------------------------------------------
语法好象不对呀!条件中不能含有赋值符号,但可以含赋值表达式
----------------解决方案--------------------------------------------------------
赋值表达式x=y=z的最后结果是x的值,而赋值运算符具有右结合性
赋值表达式x=y=z等于这个赋值表达式x=(y=z)
由于y=z这个表达式的结果为0,所以x的结果也为0
if条件为假,不执行x=4这个赋值操作
所以x和y的最后结果均为0

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-10-15 09:13:15
鸿工作室

等 级:新手上路
帖 子:89
专家分:0
注 册:2007-10-14
  得分:0 
以下是引用lxm520910在2007-10-15 17:09:22的发言:
语法好象不对呀!条件中不能含有赋值符号,但可以含赋值表达式

可以通过的,只是不当作条件判断了...






----------------解决方案--------------------------------------------------------

我也运行过去了, 可是书上明确的提到了要注意的,而且我也记下了。难道说书上说的这点不值得注意么 ?


----------------解决方案--------------------------------------------------------
以下是引用岳C在2007-10-15 17:13:15的发言:
2楼的 我也觉得是0和0 可是答案是 4,-2 难道是答案错了??

我刚刚运行了,是0和0哦....
你再试试看




----------------解决方案--------------------------------------------------------
我也运行了是 0 0,我有点不懂原因,感觉楼上的兄弟们理由有点勉强
----------------解决方案--------------------------------------------------------
  相关解决方案