Блок-схема тернарного (условного) оператора.
Пример: Переменной max присваивается максимальное значение из двух переменных а и b.
max = a<=b ? b : a;
Согласно общим правилам языка Си сначала будет выполняться выражение справа от знака присваивания, то есть тернарный оператор a<=b ? b : a Результатом этого оператора будет максимальное значение из b, a, которое и будет занесено в переменную max.
Если в условной операции выражение2 и выражение 3 являются адресными выражениями, то тернарная операция может стоять слева от знака присваивания:
Пример:
a< b? a:b = c*x+d;
В данном примере значение выражения c*x+d присваивается меньшей из переменных a , b, если a<b, то вычисляется выражение a = c*x+d, иначе b = c*x+d
В заключении приведем таблицу приоритетов операций языка С. Операции расположены по убыванию их приоритетов, таким образом, самый высокий приоритет имеют операции ( ) [ ] -> . , а самый низкий – операция «запятая»
Вид операции | Знак операции | Ассоциативность |
Первичные | ( ) [ ] -> . | слева направо |
Унарные | ! ~ - + ++ -- (type) * & sizeof | справа налево |
Мультипликативные | * / % | слева направо |
Аддитивные | + - | слева направо |
Сдвиги | << >> | слева направо |
Отношения | < <= > >= == != | слева направо |
Побитовые | & ^ | | слева направо |
Логические | && || | слева направо |
Тернарная (условная) | ? : | справа налево |
Присваивание | = | справа налево |
Запятая | , | слева направо |
Дата добавления: 2015-02-23; просмотров: 2196;