Правила прецедента действительно раздражают, поэтому я предпочитаю использовать скобки для устранения неоднозначности.Я стараюсь следовать совету «сначала пишите код для людей, а потом компьютеры».Но есть интересная мнемоника (которую я узнал из книг Брюса Экеля), чтобы помнить (некоторые из) правил: « Язвенные наркоманы действительно любят CA много »:
Ulcer - Unary (+, -, ++, --, !)
Addicts - Arithmetic (and shift) (+, -, *, /, %, <<, >>)
Really - Relational (<, >, ==, <=, >=, !=)
Like - Logical (and bitwise) (&&, ||, &, |, ^)
C - Conditional ( ? : ) <- this is the conditional ternary operator
A lot - Assignment ( =, *=, +=, ...)
в нее втиснуты идеальные побитовые операторы, и мы должны знать, что операторы умножения (*, /,%) имеют приоритет над сложными (+, -).