请教各位,该题为什么选d(语言-c语言)

img


请教各位该题为什么选d,if语句判断失败,执行else语句,我想不明白

对的,这个答案选D 是没毛病的
你要分开看:

  1. 它是个表达式,赋值表达式
  2. if 判断的时候判断x 的值,就等于 x = y+z; if(x)
    这样分开看,应该就好理解了

if判断表达式中 x=y+z,是吧y+z的结果赋给x,x的值是0为假,所以走else

因为if(x=y+z)中,x=y+z是赋值语句啊,由于y,z都是0,最终x也是0,if(0)不成立,所以执行else部分,输出###

应该是答案错了,选b吧