In C language, operator precedence is categorized as follows: 1st level (left-to-right): parentheses (), array subscript [], structure member access ->, structure member access .. 2nd level (right-to-left): logical NOT !, bitwise NOT ~, increment ++, decrement --, unary minus -, type cast (type), pointer *, address-of &, sizeof. 3rd level (left-to-right): multiplication *, division /, modulus %. 4th level (left-to-right): addition +, subtraction -. 5th level (left-to-right): left shift <<, right shift >>. 6th level (left-to-right): relational operators <, <=, >, >=. 7th level (left-to-right): equality == and inequality !=. 8th level (left-to-right): bitwise AND &. 9th level (left-to-right): bitwise XOR ^. 10th level (left-to-right): bitwise OR |. 11th level (left-to-right): logical AND &&. 12th level (left-to-right): logical OR ||. 13th and 14th levels are for the conditional operator ? : and assignment operators = += -= *= /= %= &= ^= |= <<= >>= respectively; all of these are right associative except for the comma operator , which is left associative.
