Архив выпускников
 
Уважаемые гости нашего сайта!

Мы рады приветствовать Вас!

Спешим сообщить Вам, этот сайт планировался как место встречи выпускников ТРТИ/ТРТУ/ТТИ ЮФУ, но не стал таковым.

Не теряйте друзей! Будьте на связи!


ными ссылками на отдельное число типа INT. Но A - настоящий массив: под него отводится 100 ячеек памяти и для нахождения л в стек); если идентификатор имеет тип "функция, возвращающая
е быстрой версии функции BITCOUNT.
    2.11. Условные выражения

   Операторы IF (A > B) Z = A; ELSE Z = B; конечно вычисляют в Z максимум
   из а и в. Условное выражение, записанное с помощью тернарной операции
   "?:", предоставляет другую возможность для записи этой и аналогичных
   конструк- ций. В выражении е1 ? Е2 : е3 сначала вычисляется выражение
   е1. Если оно отлично от нуля (истинно), то вычисляется выражение е2,
   которое и становится значением условного выражения. В противном случае
   вычисляет- ся е3, и оно становится значением условного выражения. Каж-
   дый раз вычисляется только одно из выражения е2 и е3. Таким образом,
   чтобы положить Z равным максимуму из а и в, можно написать Z = (A > B)
   ? A : B; /* Z = MAX(A,B) */ Следует подчеркнуть, что условное выражение
   действитель- но является выражением и может использоваться точно так
   же, как любое другое выражение. Если е2 и е3 имеют разные типы, то тип
   результата определяется по правилам преобразования, рассмотренным ранее
   в этой главе. например, если F имеет тип FLOAT, а N - тип INT, то
   выражение (N > 0) ? F : N Имеет тип DOUBLE независимо от того,
   положительно ли N или нет. Так как уровень старшинства операции ?:
   очень низок, прямо над присваиванием, то первое выражение в условном
   вы- ражении можно не заключать в круглые скобки. Однако, мы все же
   рекомендуем это делать, так как скобки делают условную часть выражения
   более заметной. Использование условных выражений часто приводит к
   корот- ким программам. Например, следующий ниже оператор цикла пе-
   чатает N элементов массива, по 10 в строке, разделяя каждый столбец
   одним пробелом и заканчивая каждую строку (включая последнюю) одним
   символом перевода строки. OR (I = 0; I < N; I++)
   PRINTF("%6D%C",A[I],(I%10==9 \!\! I==N-1) ? '\N' : ' ') Символ перевода
   строки записывается после каждого десятого элемента и после N-го
   элемента. За всеми остальными элемен- тами следует один пробел. Хотя,
   возможно, это выглядит муд- р

пределение константного выра- жения дано в п. 23). Когда неск


Страница помощи