Логические операции и отношения
1. Логические операции и отношения.
Операторами отношения являются
> >= < <=
Все они имеют одинаковый приоритет. Сразу за ними идет приоритет операторов сравнения на равенство:
== !=
Операторы отношения имеют более низкий приоритет, чем арифметические, поэтому выражение вроде i < lim -1 будет выполняться так же, как i <(lim-1).
Более интересны логические операторы && и ||. Выражения, между которыми стоят операторы && или ||, вычисляются слева направо. Вычисление прекращается, как только становится известна истинность или ложность результата. Многие Си-программы опираются на это свойство, как, например, рассмотрим цикл
For (i = 0; I < lim-1 && (c= getchar())~= EOF && c != ‘n’;++i)
s[i]=c;
Рекомендуемые материалы
Приоритет оператора && выше, чем таковой оператора ||, однако их приоритеты ниже, чем приоритет операторов отношения и равенства. Из сказанного следует, что выражение вида
В лекции "6.1. Экспериментальное изучение движения жидкости" также много полезной информации.
i<lim-1 && (c=getchar())!= ‘n’ && c !=EOF
не нуждается в дополнительных скобках. Но, так как приоритет != выше, чем приоритет присваивания, в
(c =gatchar()) != ‘n’
скобки необходимы, чтобы сначала выполнить присваивания, а затем сравнение с ‘n’/
По определению численным результатом вычисления выражения отношения или логического выражения является 1, если оно истинно, и 0 если оно ложно.
Унарный оператор ! преобразует ненулевой операнд в 0, а нуль в 1.