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_