Поделиться через


Оператор условного выражения

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 вызывает.

См. также

Ссылки

Условный оператор: ? :