C++ 运算符优先级及短路求值:- -x && y++ || z++ 解释
x 为 1,y 为 3,z 为 3。经过 '- -x && y++ || z++' 后,'- -x' 为 0,'y++' 为 3,所以 '&&' 运算符后面的表达式为 0,直接执行 '||' 运算符后面的表达式,'z++' 为 4,所以最终输出为 0、3、4。
解释:
- 运算符优先级: '- -' 的优先级高于 '&&','&&' 的优先级高于 '||'。
- 短路求值:
- 在 '&&' 运算符中,如果第一个表达式为 false (0),则第二个表达式不会被执行。
- 在 '||' 运算符中,如果第一个表达式为 true (非 0),则第二个表达式不会被执行。
代码分析:
- '- -x': 首先执行自减运算符,x 变为 0。
- 'y++': 由于 '&&' 运算符后面的表达式为 0 (false),所以 'y++' 不会被执行,y 仍然为 3。
- 'z++': 由于 '&&' 运算符后面的表达式为 0 (false),所以 '||' 运算符后面的表达式会被执行,z 变为 4。
因此,最终输出结果为:x = 0,y = 3,z = 4。
原文地址: https://www.cveoy.top/t/topic/oCGl 著作权归作者所有。请勿转载和采集!