Операция | Порядок выполнения |
первичные: ( ) [ ] -> . | слева направо |
унарные: ! ~ ++ -- - (type) * & sizeof | справа налево |
мультипликативные: * / % | слева направо |
аддитивные: + - | слева направо |
сдвиги: << >> | слева направо |
отношения: < <= > >= | слева направо |
сравнения на равенство: == != | слева направо |
поразрядные: & | слева направо |
поразрядные: ^ | слева направо |
поразрядные: | | слева направо |
логические: && | слева направо |
логические: | слева направо |
условие: ? : | справа налево |
присваивание: = += -= и т.д. | справа налево |
запятая: , | слева направо |
Таблица приоритетов показывает относительный приоритет операций. Приоритет определяет порядок, в котором операции сопоставляются с операндами. Операции получают свои операнды в порядке убывания приоритетов.
Чтобы определить относительный приоритет операций в некотором выражении, нужно найти эти операции в столбце таблицы, озаглавленном "Операция". Операция, занимающая более высокую строку в этом столбце, будет иметь и более высокий приоритет. Если операции находятся на одной строке, то посмотрите графу "Порядок выполнения". Если там сказано "слева направо, то операция, стоящая в выражении левее, имеет более высокий приоритет; если сказано "справа налево" - то наоборот.