В программировании на C выражение x = (a известен как условный оператор или тернарный оператор. Он используется для присвоения значения переменной xна основе условия. Вот как это работает:
- Оценивается условие
(a . Если это правда, выражение возвращает значениеa; в противном случае возвращается значениеb. - Возвращенное значение затем присваивается переменной
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