Operator precedence
The precedence of C language operators.
Priority | Operator | Grammar | Name | Join Direction |
---|---|---|---|---|
1 | () | x (y) | Function call operator | Left |
[] | x [y] | Subscript operator | Left | |
. | x. y | . Operator (dot operator) | left | |
-> | x->y | ->operator(arrow operator) | left | |
++ | x ++ | Post-increment operator | Left | |
- | y- | Post-decrease operator | Left | |
2 | ++ | ++ x | Prefix increment operator | right |
- | -y | Prefix subtraction operator | right | |
sizeof | sizeof x | sizeof operator | right | |
& | & x | unary & operator (address operator) | right | |
* | * x | unary * operator (indirect operator) | right | |
+ | + x | unary + operator | right | |
- | -x | unary-operator | right | |
~ | ~ x | ~ operator (complement operator) | right | |
! | ! x | logical negation operator | right | |
3 | () | (x) y | Cast operator | right |
4 | * | x * y | Binary * operator | left |
/ | x / y | / operator | left | |
% | x%y | %operator | left | |
5 | + | x + y | Binary + operator | left |
- | x-y | Binary-operator | left | |
6 | <<<< td> x << y | << operator | left | |
>> | x >> y | >> operator | left | |
7 | << td> x | |||
<= | x <= y | <= operator | left | |
> | x> y | > operator | left | |
> = | x> = y | > = operator | left | |
8 | == | x == y | == operator | left |
! = | x! = y | ! = Operator | left | |
9 | & | x & y | Bitwise and operator | left |
10 | ^ | x ^ y | Bitwise exclusive or operator | left |
11 | | | x | y | Bitwise or operator | Left |
12 | && | x && y | logical and operator | left |
13 | || | x || y | logical or operator | left |
14 | ?: | x? y: z | conditional operator | right |
15 | = | x = y | Simple assignment operator | right |
+ =-= * = / =%= << = >> = & = ^ = | = | x + = y | Composite assignment operator | right | |
16 | , | x, y | Comma operator | left |