Синтаксис для троичного оператора, также известного как условное выражение , определен в разделе 6.5.15 C стандарта следующим образом:
условное выражение:
логическое-ИЛИ-выражение
логическое-ИЛИ-выражение?выражение: условное выражение
Поскольку «выражение условия» не является «выражением логического ИЛИ» (читай: логический оператор ИЛИ имеет более высокий приоритет), это предотвращает a ? b : c ? d : e
от разбора как (a ? b : c) ? d : e
.Это также означает, что оператор справа налево ассоциативен с самим собой.Поэтому он анализируется как a ? b : (c ? d : e)
.
. Для более подробной информации вы можете найти правила приоритета оператора здесь .Несмотря на то, что стандарт является официальным источником, в этой таблице перечислены правила, которые легче понять.
Поскольку людям может быть трудно запомнить полный набор правил предшествования, и потому что разные языки иногда имеют разныеправила приоритета, лучше всего четко указывать порядок операций и использовать круглые скобки, чтобы сделать ваши намерения более понятными для читателя.