设有定义“int x=3,y=4,z;”,则表达式“z=(y=x++?y--:++x)”的值为什么是3,y=x++不是赋值了吗?后面还运行吗?为什么在if语句if括号内=赋值还继续运行,这个就不运行了吗?
?: 运算符优先级高于=,因此这个式子是 z = (y =( x++ ? y-- : ++x));
你要复习运算优先级的概念了赋值运算优先级最低呀