ぁ不学无术ボ 2022-11-08 18:32 采纳率: 25%
浏览 33

大一C语言,搞不懂的if语句

设有定义“int x=3,y=4,z;”,则表达式“z=(y=x++?y--:++x)”的值为什么是3,y=x++不是赋值了吗?后面还运行吗?为什么在if语句if括号内=赋值还继续运行,这个就不运行了吗?

  • 写回答

2条回答 默认 最新

  • 浪客 2022-11-08 18:41
    关注

    ?: 运算符优先级高于=,因此这个式子是 z = (y =( x++ ? y-- : ++x));

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 11月8日