求具体解答一下这道输出结果判断

 已有声明“int x=0,y=0,z=0;”,则执行语句“printf("%s",(x=y+z)?"###":"***");”时输出的结果是

解答思路:

  1. x=y+z的值为x的计算后的值0
  2. 0在判断条件时为假
  3. 三目运算符按如下规则运算:[条件?为真时的输出:为假时的输出],所以[0?"###":"***"]的最终结果为"***"
  4. 实际执行的打印语句相当于printf("%s","***");