Every time you want to find an operator with a high priority, you may not find it in many cases. This is really annoying! Now, I personally think it is very comprehensive. I 'd like to share it with you. Thank you!
C language operator priority
Priority |
Operator |
Name or meaning |
Usage |
Integration direction |
Description |
1 |
[] |
Array subscript |
Array name [constant expression] |
Left to right |
-- |
() |
Parentheses |
(Expression)/function name (parameter table) |
-- |
. |
Member selection (object) |
Object. member name |
-- |
-> |
Member selection (pointer) |
Object Pointer-> member name |
-- |
|
2 |
- |
Negative Operator |
-Expression |
Right to left |
Single Object Operator |
~ |
Bitwise Inverse Operator |
~ Expression |
++ |
Auto-increment operator |
++ Variable name/variable name ++ |
-- |
Auto-subtraction Operator |
-- Variable name/variable name -- |
* |
Value Operator |
* Pointer variable |
& |
Bitwise operators |
& Variable name |
! |
Logical non-Operator |
! Expression |
(Type) |
Forced type conversion |
(Data Type) Expression |
-- |
Sizeof |
Length Operator |
Sizeof (expression) |
-- |
|
3 |
/ |
Division |
Expressions/Expressions |
Left to right |
Binary Operators |
* |
Multiplication |
Expression * Expression |
% |
Remainder (Modulo) |
Integer expression % integer expression |
4 |
+ |
Add |
Expression + expression |
Left to right |
Binary Operators |
- |
Subtraction |
Expression-expression |
5 |
< |
Move left |
Variable <expression |
Left to right |
Binary Operators |
> |
Right Shift |
Variable> Expression |
|
6 |
> |
Greater |
Expression> Expression |
Left to right |
Binary Operators |
> = |
Greater than or equal |
Expression> = expression |
< |
Less |
Expression <expression |
<= |
Less than or equal |
Expression <= expression |
7 |
= |
Equal |
Expression = expression |
Left to right |
Binary Operators |
! = |
Not equal |
Expression! = Expression |
|
8 |
& |
Bitwise AND |
Expressions & Expressions |
Left to right |
Binary Operators |
9 |
^ |
Bitwise OR |
Expression ^ expression |
Left to right |
Binary Operators |
10 |
| |
By bit or |
Expression | expression |
Left to right |
Binary Operators |
11 |
&& |
Logic and |
Expressions & Expressions |
Left to right |
Binary Operators |
12 |
| |
Logic or |
Expression | expression |
Left to right |
Binary Operators |
|
13 |
? : |
Conditional Operators |
Expression 1? Expression 2: expression 3 |
Right to left |
Three-object Operator |
|
14 |
= |
Value assignment operator |
Variable = expression |
Right to left |
-- |
/= |
Assignment After Division |
Variable/= expression |
-- |
* = |
Assign value after Multiplication |
Variable * = expression |
-- |
% = |
Assign value after modulo operation |
Variable % = expression |
-- |
+ = |
Add and assign values |
Variable + = expression |
-- |
-= |
Value after subtraction |
Variable-= expression |
-- |
<= |
Value after left shift |
Variable <= expression |
-- |
>>= |
Value after right shift |
Variable> = expression |
-- |
& = |
Bitwise AND postvalue |
Variable & = expression |
-- |
^ = |
Value Based on bitwise XOR |
Variable ^ = expression |
-- |
| = |
Value by bit or after |
Variable | = expression |
-- |
|
15 |
, |
Comma Operator |
Expressions, expressions ,... |
Left to right |
-- |
Note:
For operators with the same priority, the operation order is determined by the combination direction.
Note :! > Arithmetic Operators> Relational operators >&>||> value assignment operators