C#、PHP、Python 运算符的优先级
C# 运算符优先级
| 优先级 | 类别 | 运算符 | 
| 1 | 基本 | (x) x.y f(x) a[x] x++ x――new typeof sizeof checked unchecked | 
| 2 | 单目 | + - ! ~ ++x ――x (T)x | 
| 3 | 乘法与除法 | * / % | 
| 4 | 加法与减法 | + - | 
| 5 | 移位运算 | << >> | 
| 6 | 关系运算 | < > < = >= | 
| 7 | 条件等 | = = ! = | 
| 8 | 位逻辑与 | & | 
| 9 | 位逻辑异或 | ^ | 
| 10 | 位逻辑或 | | | 
| 11 | 条件与 | && | 
| 12 | 条件或 | ‖ | 
| 13 | 条件 | ?: | 
| 14 | 赋值 | = *= /= %= += -= <<= >>= &= ^= |= | 
上表源自: http://baike.baidu.com/view/262524.htm#4
C# 提供大量运算符,这些运算符是指定在表达式中执行哪些操作的符号。 ==, !=, <, >, <=, >=, binary +, binary -, ^, &,’ xml:space=”preserve”>整型运算包括 ==、!=、<、>、<=、>=、binary +、binary -、^、& |~, ++, –, and sizeof() are generally allowed on enumerations.’ xml:space=”preserve”>、~、++、– 和 sizeof(),通常在枚举时允许这些运算。 overloaded by the user, thus changing their meaning when applied to a user-defined type.’ xml:space=”preserve”>此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义。
下表列出了按发型版本不同的 C# 运算符:
- Visual Studio 2005 http://msdn.microsoft.com/zh-cn/library/6a71f45d(v=vs.80).aspx
- Visual Studio 2008 http://msdn.microsoft.com/zh-cn/library/6a71f45d(v=vs.90).aspx
- Visual Studio 2010 http://msdn.microsoft.com/zh-cn/library/6a71f45d(v=vs.100).aspx
- Visual Studio 2012 http://msdn.microsoft.com/zh-cn/library/6a71f45d(v=vs.110).aspx
- Visual Studio 2013 http://msdn.microsoft.com/zh-cn/library/6a71f45d(v=vs.120).aspx
PHP运算符优先级
| 结合方向 | 运算符 | 附加信息 | 
|---|---|---|
| 非结合 | clone new | clone 和 new | 
| 左 | [ | array() | 
| 非结合 | ++ -- | 递增/递减运算符 | 
| 非结合 | ~ - (int) (float) (string) (array) (object) (bool) @ | 类型 | 
| 非结合 | instanceof | 类型 | 
| 右结合 | ! | 逻辑操作符 | 
| 左 | * / % | 算术运算符 | 
| 左 | + - . | 算术运算符 和 字符串运算符 | 
| 左 | << >> | 位运算符 | 
| 非结合 | < <= > >= <> | 比较运算符 | 
| 非结合 | == != === !== | 比较运算符 | 
| 左 | & | 位运算符 和 引用 | 
| 左 | ^ | 位运算符 | 
| 左 | | | 位运算符 | 
| 左 | && | 逻辑运算符 | 
| 左 | || | 逻辑运算符 | 
| 左 | ? : | 三元运算符 | 
| 右 | = += -= *= /= .= %= &= |= ^= <<= >>= | 赋值运算符 | 
| 左 | and | 逻辑运算符 | 
| 左 | xor | 逻辑运算符 | 
| 左 | or | 逻辑运算符 | 
| 左 | , | 多处用到 | 
Python 运算符优先级
这个表给出Python的运算符优先级(从低到高).
从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。
这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。
| 运算符 | 描述 | 
|---|---|
| lambda | Lambda表达式 | 
| or | 布尔“或” | 
| and | 布尔“与” | 
| not x | 布尔“非” | 
| in,not in | 成员测试 | 
| is,is not | 同一性测试 | 
| <,<=,>,>=,!=,== | 比较 | 
| | | 按位或 | 
| ^ | 按位异或 | 
| & | 按位与 | 
| <<,>> | 移位 | 
| +,- | 加法与减法 | 
| *,/,% | 乘法、除法与取余 | 
| +x,-x | 正负号 | 
| ~x | 按位翻转 | 
| ** | 指数 | 
| x.attribute | 属性参考 | 
| x[index] | 下标 | 
| x[index:index] | 寻址段 | 
| f(arguments...) | 函数调用 | 
| (experession,...) | 绑定或元组显示 | 
| [expression,...] | 列表显示 | 
| {key:datum,...} | 字典显示 | 
| 'expression,...' | 字符串转换 | 
上两表源自: http://tool.oschina.net/commons?type=6#php_