Условная операция- операция языка Си, которая по действию аналогична оператору if-else (Управляющий оператор if).
Синтаксис условной операции:
выражение1 ? выражение2 : выражение3
Если выражение1 истинно, значением всего выражения будет значение выражения2, иначе — выражения3.
Вместо оператора if-else иногда может быть использована условная операция ?:. Она выполняет проверку и выбор между двумя значениями внутри одного выражения. В отличие от конструкции if-else, являющейся оператором, эта операция может использоваться там, где синтаксис требует указывать выражение. Поэтому использование условной операции зачастую является более кратким и эффективным.
Подобно другим операциям языка Си, условная операция указана в таблице приоритетов (Приоритеты операций).
Это единственная операция, составленная из двух символов, разделенных между собой выражениями (в отличии от операций &&, ||, >=, <= и т.д.). Это единственная операция, требующая три операнда.
Пример 1
/* Функция вычисления абсолютной величины*/
int abs(int x)
{
   if ( x >= 0)
       return x;
   else
       return -x;
}
Пример 2
/* Альтернативный вариант*/
int abs(int x)
{
   return (x >= 0) ? x : -x;
}
Пример 3
largest = x > max ? x : max;