[bo]以下是引用 [un]luck3359[/un] 在 2008-3-16 13:52 的发言:[/bo]
int x=3,y=4,z=5;
表达式!(x>y)+(y!=z)||(x=y)&&(x-z)的结果是
1是x=y很可能是个把判断相等写出赋值的错误。当然题目可能故意这样考,但这是永远需要重视的问题。
2是!的优先级比+高。
以下,运算符从高到低的优先级顺序排列:
. [] () 域访问、数组下标和函数调用
++ -- - ~ ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义的值
* / % 乘、除、取模
+ - + 加、减、字符串连接
<< >> >>> 位移动
< <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof
== != === !== 相等、不相等、恒等、不恒等
& 按位“与”
^ 按位“异或”
| 按位“或”
&& 逻辑“与”
|| 逻辑“或”
?: 条件
= oP= 赋值、带操作的赋值
, 多重求值