may*_*tic 7 c++ operators operator-precedence
鉴于x = 2,y = 1,z = 0,以下语句将显示什么?
printf("answer = %d\n", (x || !y && z));
Run Code Online (Sandbox Code Playgroud)
这是在一个测验,我弄错了,我不记得我的教授覆盖这个,有人开导我...我知道我得到的答案是1,但为什么?
该表达式被解释为x || (!y &&z)(检查运算符||,!和的优先级&&。
||是一个短路算子。如果左操作数为真(如果||),则无需计算右侧操作数。
在你的情况下x是 true,所以作为布尔表达式,结果将为 1。
编辑。
&&和的求值顺序||保证是从左到右。
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |