四. 运算符
运算符优先级和结合性 Operator precedence and associativity (or fixity)
注意: ① 成员运算符MemberOperators可以称为点运算符, 箭头运算符dot operator, arrow operator.
② 操作符/运算符根据其操作数(operand)的数目, 可以分为单目运算符, 如i++; 双目运算符, 如a+b; 三目运算符, 如b?x:y
③运算符的结合性是指相同优先级的运算符在同一个表达式中,且没有括号的时候,运算符和操作数的结合方式,通常有从左到右结合和从右到左结合两种方式。举个例子,假设~是一个运算符,又有表达式a~b~c,如果~是左结合的,那么该表达式被解析为(a~b)~c,如果~是右结合的,那么该表达式将被解析为a~(b~c)。比如上表中三目运算符?:是从右向左结合的,那么下面的表达式a > b ? b > c ? 1 : 0 : 2将被解析为 a > b ? (b > c ? 1 : 0) : 2。
④ 大多数运算符都是左结合(从左到右结合)的, 一元运算符, 赋值运算符和三目运算符是右结合(从右到左结合)的.
⑤ 优先级: 在上图中, 优先级从上到下越来越小, 即作用域解析符的优先级最高, 逗号运算符的优先级最低.