Понимание условного оператора (тройного оператора) в программировании на C

В программировании на C выражение x = (a известен как условный оператор или тернарный оператор. Он используется для присвоения значения переменной xна основе условия. Вот как это работает:

  1. Оценивается условие (a . Если это правда, выражение возвращает значение a; в противном случае возвращается значение b.
  2. Возвращенное значение затем присваивается переменной x.

Проще говоря, выражение x = (a означает «присвоить значение ax, если aменьше, чем b» ; в противном случае присвойте значение bx."

Вот несколько альтернативных методов достижения того же результата:

Метод 1. Использование оператора if-else

if (a < b) {
    x = a;
} else {
    x = b;
}

Метод 2. Использование вложенного тернарного оператора

x = (a < b) ? a : ((a > b) ? b : a);

и bравны, значение aбудет присвоено x.

Метод 3. Использование макроса minили max

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
x = min(a, b); // Assigns the minimum value of a and b to x
// or
x = max(a, b); // Assigns the maximum value of a and b to x