Operators

Operators are special symbols that perform a computation for one or more values. They are either unary, binary, or ternary.

  • Unary operators perform an operation for a single value. The unary operator symbol appears before the value.

  • Binary operators operate on two values. The binary operator symbol appears between the two values (infix).

  • Ternary operators operate on three values. The first operator symbol appears between the first and second value, the second operator symbol appears between the second and third value (infix).

Precedence and Associativity

Operators have the following precedences, highest to lowest:

  • Multiplication precedence: *, &*, /, %

  • Addition precedence: +, &+, -, &-

  • Relational precedence: <, <=, >, >=

  • Equality precedence: ==, !=

  • Logical conjunction precedence: &&

  • Logical disjunction precedence: ||

  • Ternary precedence: ? :

All operators are left-associative, except for the ternary operator, which is right-associative.

Expressions can be wrapped in parentheses to override precedence conventions, i.e. an alternate order should be indicated, or when the default order should be emphasized e.g. to avoid confusion. For example, (2 + 3) * 4 forces addition to precede multiplication, and 5 + (6 * 7) reinforces the default order.

Last updated