C language priority table (super complete)

priority

operator

name or meaning

form of use

Binding direction

illustrate

1

[]

array subscript

array name [constant expression]

left to right

--

()

Parentheses

(expression)/function name (parameter list)

--

.

memberselect(object)

object.membername

--

->

member selection (pointer)

Object pointer -> member name

--

2

-

minus operator

-expression

right to left

unary operator

~

bitwise negation operator

~ expression

++

auto increment operator

++variable name/variable name++

--

decrement operator

--variable name/variable name--

*

value operator

*pointer variable

&

address-of operator

&variable name

!

logical NOT operator

!expression

(type)

cast

(data type) expression

--

sizeof

length operator

sizeof(expression)

--

3

/

remove

expression/expression

left to right

binary operator

*

take

expression*expression

%

remainder (modulo)

integer_expression% integer_expression

4

+

add

expression + expression

left to right

binary operator

-

reduce

expression - expression

5

<< 

move left

variable << expression

left to right

binary operator

>> 

move right

variable >> expression

6

more than the

expression>expression

left to right

binary operator

>=

greater or equal to

expression >= expression

less than

expression<expression

<=

less than or equal to

expression <= expression

7

==

equal

expression == expression

left to right

binary operator

!=

not equal to

expression != expression

8

&

bitwise AND

expression&expression

left to right

binary operator

9

^

bitwise XOR

expression^expression

left to right

binary operator

10

|

bitwise or

expression | expression

left to right

binary operator

11

&&

logic and

expression && expression

left to right

binary operator

12

||

logical or

expression || expression

left to right

binary operator

13

?:

conditional operator

expression 1?

Expression 2: Expression 3

right to left

Ternary operator

14

=

assignment operator

variable = expression

right to left

--

/=

assignment after division

variable/=expression

--

*=

assignment after multiplication

variable *= expression

--

%=

Assignment after modulus

variable %=expression

--

+=

post-add assignment

variable += expression

--

-=

assignment after subtraction

variable -= expression

--

<<=

assignment after left shift

variable <<= expression

--

>>=

assignment after right shift

variable >>= expression

--

&=

bitwise and post-assignment

variable &= expression

--

^=

Assignment after bitwise XOR

variable ^= expression

--

|=

bitwise or post-assignment

variable |= expression

--

15

comma operator

expression, expression, ...

left to right

--

Guess you like

Origin blog.csdn.net/qq_62799214/article/details/122072615