Операции отношения и логические операции
Операции сравнения: == (равно), != (не равно), <, >, <=, >= используются при сравнении двух выражений. Результатом такого сравнения могут быть значения true (истина) или false (ложь). Однако результатом логического выражения может являться и целочисленное арифметическое значение. При этом значение 0 расценивается как false, а любое ненулевое значение — как true. Рассмотрим пример: int tr, fal; tr = (101<=105); fal= (101>105);
В результате выполнения этих операторов переменная tr получит значение 1, а переменная fal станет равной 0.
Не следует путать операторы типа if (A = =2)...;
и
if (A =2).;
Оба эти оператора верны, так как в C любое выражение, имеющее некоторое значение, может использоваться в условных операторах. Но если в первом случае значение логического выражения может быть как истинным, так и ложным, в зависимости от значения переменной А, то во втором случае значение логического выражения всегда истинно, так как в результате присваивания значение А равно двум и не является нулевым.
В С имеется три логические операции:
&& — логическое И (AND)
|| — логическое ИЛИ (OR)
! — логическое НЕ (NOT)
Логические операции в языке С соответствуют классическим логическим операциям, а их результат — соответствующим таблицам истинности.
Операции присваивания
Особенностью обычного оператора присваивания является то, что он
и допускает многократное использование, например:
a=b=c=x*y;
Выполняются операции присваивания справа налево, т. е. сначала вычисляется значение выражения x*y, затем это значение присваивается c, потом b и лишь затем а.
Кроме обычного присваивания, все прочие являются составными операциями. Они присваивают переменной, стоящей слева, результат применения простой операции, указанной перед символом «=», к обоим операндам.
Например, выражение X+=Y эквивалентно выражению X=X+Y, но записывается компактнее и выполняется быстрее.