Оператор условного выражения
C имеет один троичный оператор: условного выражения (оператор- :).
Синтаксис
условное выражение.
логически-ИЛИ-выражениеЛогического или выражение - Выражение . условное выражение
логически-ИЛИ-выражение интеграл, запрещены или иметь тип указателя.Он выполняется с точки зрения их эквивалентности до 0.Укажите последовательности, за которым следует логически-ИЛИ-выражение.Оценка операндов продолжает следующим образом:
If логически-ИЛИ-выражение не равны 0, Выражение вычисляет.Результат вычисления выражения, нетерминальным Выражение.(Это означает Выражение оценивает только в том случае, если логически-ИЛИ-выражение - true).
If логически-ИЛИ-выражение равно 0, условное выражение вычисляет.Результат вычисления выражения, значение условное выражение.(Это означает условное выражение оценивает только в том случае, если логически-ИЛИ-выражение false.)
Обратите внимание, что Выражение OR условное выражение оценивает, но не оба.
Тип результата условной операции зависит от типа Выражение OR условное выражение операнд следующим образом:
If Выражение OR условное выражение интеграл или перемещаемые имеет тип (их типы могут различаться), оператор выполняет обычные арифметические преобразования.Тип результата типа операндов после преобразования.
Если оба Выражение и условное выражение имеют одинаковую структуру, объединение или тип указателя, тип результата те же структура, объединение или тип указателя.
Если оба операнда имеют тип voidрезультат имеет тип void.
Если любой из операндов указатель на объект любого типа, и другой операнд указатель на voidуказатель на объект будет преобразован к указателю на void указатель на а результат void.
Если такой Выражение OR условное выражение указатель, а второй операнд константное выражение со значением 0, тип результата тип указателя.
При сравнении типов для указателей, любой тип квалификаторы (Const OR volatile) в типе, к которому указатель указывает незначительн, но типы результатов наследует квалификаторы из обоих компонентов условного.
Примеры
В следующих примерах показано использование условного оператора:
j = ( i < 0 ) ? ( -i ) : ( i );
В этом примере будет присвоено абсолютное значение i В j.If i меньше 0 -i присвоенный j.If i больше или равно 0 i присвоенный j.
void f1( void );
void f2( void );
int x;
int y;
.
.
.
( x == y ) ? ( f1() ) : ( f2() );
В этом примере 2 функции f1 и f2и 2 переменной x и yобъявите.Далее в программе, если имеют одинаковое значение 2 переменной, функция f1 вызывает.в противном случае, f2 вызывает.